STL容器遍历时删除元素
2015-12-19 18:41
190 查看
STL容器遍历时在循环体内删除元素最容易出错了,根本原因都是因为迭代器有效性问题,在此记下通用删除方法,该方法适用于所有含erase成员函数的序列容器:
容器list有个比较另类的删除方法,也能得到正确结果,如下代码所示:
注:不推荐使用该方法来删除某个元素,因为该方法不具有普适性。
std::vector<int> myvec; std::vector<int>::iterator it = myvec.begin(); while( it != myvec.end()) { it = myvec.erase(it); }
容器list有个比较另类的删除方法,也能得到正确结果,如下代码所示:
std::list<int> mylist; std::list<int>::iterator it = mylist.begin(); while (it != mylist.end()) { mylist.erase(it++); }
注:不推荐使用该方法来删除某个元素,因为该方法不具有普适性。
相关文章推荐
- 使用Nexus配置Maven私有仓库
- grep的用法
- ListView的选择模式
- 汇编指令---ROL和ROR指令
- 数据结构之查找——折半查找、插值查找、斐波那契查找
- python 安装PIL
- 第16周项目1(4)快速排序
- Leetcode:Subsets
- Week6-5Language Modelling2
- vba中text的问题和VBA自动调用的问题
- IO_File_常用方法_文件夹操作_命令模式查找JAVA145
- 散摘
- Chrome 远程调试 hybird
- opencv学习笔记5
- C++ std命名空间详解
- Git的安装以及使用
- cocos2dx Menu
- 导航栏
- orderBy 过滤器
- 谈下自己的性格,谈下vbs的一些代码