2020
10-06
10-06
c++迭代器失效的情况汇总
一、序列式容器(数组式容器)对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator会使后面所有元素的iterator都失效。这是因为vetor,deque使用了连续分配的内存,删除一个元素导致后面所有的元素会向前移动一个位置。所以不能使用erase(iter++)的方式,还好erase方法可以返回下一个有效的iterator。for(iter=cont.begin();iter!=cont.end();){(*it)->doSomething();if(shouldDelete(*iter))...
继续阅读 >