关于迭代器
迭代器失效问题
迭代器失效: 对于容器的操作影响了元素存在的位置导致迭代器失效
由于我菜, 暂时只考虑由于删除导致的迭代器失效问题
在stl中,有3种结构的容器: 数组型, 链表型, 树形
对于所有的删除, 都可以使用以下代码
1 | |
每种结构有其特殊情况
对于vector而言:
1 | |
是可以这样删除的,因为vector本质上是一个连续空间, 所以返回的就是下一个地址
对于deque不一定(还没学, 等我学了来补)
对于链表型和树形容器, 由于删完当前迭代器不会导致后面的迭代器失效, 但是会导致当前迭代器失效, 所以也可以采用下面的方法删除
1 | |