首页 > 技术文章 > C++迭代器失效的几种情况总结

yahoo17 2020-04-20 23:05 原文

https://www.cnblogs.com/fnlingnzb-learner/p/9300073.html
文末有自己的测试代码
一、序列式容器(数组式容器)

对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator会使后面所有元素的iterator都失效。这是因为vetor,deque使用了连续分配的内存,删除一个元素导致后面所有的元素会向前移动一个位置。所以不能使用erase(iter++)的方式,还好erase方法可以返回下一个有效的iterator。

[复制代码](javascript:void(0)

推荐阅读