首页 > 其他 > 详细

STL容器遍历时删除元素

时间:2015-12-19 19:10:09      阅读:255      评论:0      收藏:0      [点我收藏+]

STL容器遍历时在循环体内删除元素最容易出错了,根本原因都是因为迭代器有效性问题,在此记下通用删除方法,该方法适用于所有容器:

1 std::vector<int> myvec;
2 
3 std::vector<int>::iterator it = myvec.begin();
4 while( it != myvec.end())
5 {
6     it = myvec.erase(it);
7 }

容器list有个比较另类的删除方法,如下代码所示:

std::list<int> mylist;
std::list<int>::iterator it = mylist.begin();
while (it != mylist.end())
{
    mylist.erase(it++);
}

但是不推荐使用该方法来删除某个元素,因为该方法不具有普适性。

STL容器遍历时删除元素

原文:http://www.cnblogs.com/liulc/p/5059555.html

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