
如何避免“iterator not incrementable”错误
1个回答
2017-11-14
展开全部
你好,关于如何避免“iterator not incrementable”错误:
在erase元素的时候,应该注意迭代器越界的问题。
for (auto it = vec.begin(); it != vec.end(); ){
if (*it == 2)
it = vec.erase(it);
else
++it;
在进行迭代器遍历容器时,原来的容器不应该再继续压入任何元素了,不然容器的长度变了,迭代器就失效了。
补救的方法是,每次压入vector时,都把迭代器重置
for (auto it = vec.begin(); it != vec.end(); ++it){
vec.push_back(1);
it = vec.begin();
}
希望对你有帮助
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询