迭代器失效问题
插入和删除都会导致迭代器失效
对于连续存储的容器,如vector、deque,插入和删除会导致之后的迭代器失效,所以删除的时候不能用it++ 这种,要用返回值,如下
for (auto it = aaa.begin(); it != aaa.end(); )
{
it = aaa.erase(it);
}对于其他容器,删除的时候可以使用it++ 这种方式,如下
for (auto it = aaa.begin(); it != aaa.end(); )
{
aaa.erase(it++);
}最后更新于
这有帮助吗?