迭代器失效问题

插入和删除都会导致迭代器失效

对于连续存储的容器,如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++);
}

最后更新于

这有帮助吗?