码迷,mamicode.com
首页 > 其他好文 > 详细

Vector失效问题

时间:2015-05-15 22:44:10      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

当对Vector进行erase()后,会导致原来的迭代器失效,要特别注意该问题。

int removeElement(vector<int>& nums, int val)
{
    vector<int>::iterator  itr = nums.begin();
    while (itr != nums.end())
    {
        if (*itr == val)
            itr = nums.erase(itr);
        else
            ++itr;
    }
    return nums.size();
}

注意:当调用erase后,会返回一个迭代器,该迭代器指向刚刚删除的元素的后一个元素。为了使得删除vector中的元素后的迭代器不失效,要将对迭代器赋值erase返回的迭代器

 

Vector失效问题

标签:

原文地址:http://www.cnblogs.com/acode/p/4506847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!