首页 > 其他 > 详细

STL

时间:2017-03-25 23:35:07      阅读:324      评论:0      收藏:0      [点我收藏+]

1、迭代器删除元素

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;
}

如果上面程序中要在for循环中使用++iter的话,就需要在删除元素后做一次--iter操作,但这样的效率显然没有上面代码效率高。注意到vector的erase方法在执行后,当前迭代器自动指向了下一个元素位置,这也是为什么不要在删除元素后再++iter的原因。

STL

原文:http://www.cnblogs.com/wft1990/p/6618917.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!