调用 erase() 函数是否也会在擦除元素之前更改迭代器值?



所以我的疑问很简单,当我们为容器中的某个范围调用 erase(( 函数时,我们知道这些元素后面的迭代器会发生变化(我说的是用于指定容器范围作为 erase(( 函数参数的迭代器( 但我的问题是,元素之前的迭代器也会改变吗?

当我们为容器中的某个范围调用 erase(( 函数时,我们知道这些元素后面的迭代器会发生变化

我想你的意思是那些迭代器变得无效。请注意,并非所有容器都普遍如此。例如,在std::list中擦除元素之后的元素迭代器仍然有效。

哪些迭代器失效以及何时取决于容器。您需要查阅正在使用的容器的文档。所有标准容器的一个共同点是,对擦除元素的迭代器无效。

最新更新