首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向量擦除迭代器

向量擦除迭代器
EN

Stack Overflow用户
提问于 2011-01-10 18:22:04
回答 10查看 141.9K关注 0票数 77

我有这样的代码:

代码语言:javascript
复制
int main()
{
    vector<int> res;
    res.push_back(1);
    vector<int>::iterator it = res.begin();
    for( ; it != res.end(); it++)
    {
        it = res.erase(it);
        //if(it == res.end())
        //  return 0;
    }
}

一个随机访问迭代器,指向函数调用擦除的最后一个元素后面的元素的新位置,如果操作擦除了序列中的最后一个元素,则该位置为向量结尾。

这段代码崩溃了,但是如果我使用if(it == res.end())部分,然后返回,它就可以工作了。怎么会这样?for循环缓存了res.end(),所以不等于运算符失败了吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4645705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档