您的位置:首页 > 其它

迭代器删除元素

2015-11-07 22:44 183 查看
1.序列容器,比如vector

序列容器的erase返回的是被删除元素后的有效迭代器。

vector<int> vec;

vector<int>::iterator iter;

for(iter = vec.begin();iter!=vec.end();)

{

if(need_delete)

{

iter = vec.erase(iter);

}else

++iter;

}

2.关联容器,比如map

关联容器的erase方法没有返回值,被删除的迭代器失效.

map<int,int> mymap;

map<int,int>::iteraror iter;

for(iter=mymap.begin();iter!=mymap.end();)

{

if(need_delete)

{

mymap.erase(iter++)

}else

++iter;

}

mymap.errase删除的是Iter的一个副本,真正的Iter已经递增了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: