1

根据例如https://en.cppreference.com/w/cpp/container/vector/erasestd::vector::erase在 C++11 中的参数从 更改iteratorconst_iterator

这令人惊讶;从逻辑上讲,容器确实必须更改那些迭代器指向的数据,而且实际上当我实现自己的向量类时,编译器抱怨我memmove使用 const 指针调用;我通过将参数改回来修复它iterator

制作它们背后的逻辑是什么const_iterator

4

1 回答 1

2

迭代器只是说在哪里。该向量是非常量的,并且是从中删除的。

这使您可以以成本方式找到要擦除的位置,并且只有当您实际擦除它时,您才需要一个非 const 容器。

于 2018-11-05T00:20:37.903 回答