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

STL容器遍历时删除元素

时间:2015-12-19 19:12:29      阅读:129      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!