c++下list在遍历时删除节点的方法
来源:互联网 发布:淘宝banner制作 编辑:程序博客网 时间:2024/06/11 17:09
c++中,list是个链表,当遍历过程中删除当前节点,在下一次循环时,对已删除iterator节点进行递加操作,将导致错误。那么,我们可以在删除前先保存要删除的节点,然后将循环变量后移,再删除要移除的节点,就不会出现问题了。以下是示意代码。
#include <list>
using namespace std;
int main(int argc, char* argv[])
{
list<int> ls;
for (int i=0; i<6; ++i)
{
ls.push_back(i);
}
list<int>::iterator it = ls.begin();
for (; it != ls.end(); )
{
int d = (*it);
list<int>::iterator del_it = it;
it++; //先移动
if (d == 2 || d == 4)
{
ls.erase(del_it);
}
}
return 0;
}
- c++下list在遍历时删除节点的方法
- c++中List在遍历时删除节点的方法,带源码
- c++中List在遍历时删除节点的方法(转载)
- list遍历时删除元素
- 如何在遍历时删除List中的元素
- 集合list在遍历时是不能做删除操作的
- vector, list, map在遍历时删除符合条件的元素
- python list遍历时删除元素的推荐做法
- List,Set,Map遍历时删除元素
- ArrayList在遍历时做删除的陷阱
- List--遍历时的错误用法
- List遍历时陷阱
- std中vector和list容器遍历时元素的动态删除
- 使用ListIterator 对List遍历时修改,删除
- CCArray数组或者vector容器元素在遍历时删除的删除技巧
- hibernateTemplate.find方法的使用,查的list不是空,但是遍历时却是null
- java.util.ArrayList在foreach循环遍历时删除元素的问题
- LinkedList,ArrayList在foreach循环遍历时可以删除元素!!!
- 拔打电话 (IPAD, IPOD, 模拟器 显示没有打电话功能)
- Nginx 中使用 Memcached
- 关于python的单例模式
- wireshark 如何写过滤规则
- android 编译出错
- c++下list在遍历时删除节点的方法
- 如何检索Android设备的唯一ID
- hdu 4619 匈牙利算法 求最大匹配 2013 Multi-University Training Contest 2
- Thinkphp一些诡异的注意事项
- lucene4.5源码分析系列:lucene概述
- android 随手记 -输入流转成String
- 18 个最佳代码编辑器/IDE推荐
- 本地图片上传预览(兼容ie firefox ,chrome等主流浏览器
- Oracle 中的JOIN(左连接、右连接、全连接)