STL在迭代的过程,删除指定的元素
2015-08-25 18:23
429 查看
直接在Code。在 Picture
执行结果:
#include <iostream> #include <list> using namespace std; // STL在迭代的过程中,删除指定的元素 int main() { list<int> listTest; listTest.push_back(-1); listTest.push_back(-1); listTest.push_back(-1); listTest.push_back(-1); cout<<"list size: "<<listTest.size()<<endl; list<int>::iterator itList; for (itList=listTest.begin(); itList != listTest.end(); /*no itList++ !!*/ ) { cout<<"data: "<<*itList<<endl; // 第一种方法 if (*itList <= 0) itList = listTest.erase(itList); else ++itList; } cout<<"list size: "<<listTest.size()<<endl; cout<<"======================================"<<endl; listTest.push_back(-1); listTest.push_back(-1); listTest.push_back(-1); listTest.push_back(1); cout<<"list size: "<<listTest.size()<<endl; for (itList=listTest.begin(); itList != listTest.end(); ++itList) { cout<<"data: "<<*itList<<endl; // 另外一种方法 if (*itList <= 0) *itList = 0; // 做个记录标志。等待迭代完进行回收 } listTest.remove(0); // 回收 0 cout<<"list size: "<<listTest.size()<<endl; cout<<"======================================"<<endl; return 0; }
执行结果:
相关文章推荐
- hibernate 双向n-n
- 当有多于64合乎逻辑的cpu时刻,Windows 下一个Oracle db 实例启动(startup)什么时候会hang(待定)
- poj 2001 Shortest Prefixes(特里)
- linux权限和ntfs知识文件系统权限
- Maven本地仓库配置
- Android 常规任务的高度【schedule】与【scheduleAtFixedRate】差额
- linux之eventfd()
- Lua--table的遍历
- 面向对象设计的SOLID原则
- 安卓零碎的知识重点(2)
- Linux下的网络设备驱动(一)
- css知多少(6)——选择器的优先级
- UE4渲染概述
- Hibernate中addEntity().addscala(),返回混合类型(实体bean+其他简单类型)
- select2搜索框
- eclipse-各种设置
- Maven常用的配置
- 链表中倒数第k个结点
- UITableView之下拉刷新上拉加载
- 访问者——对象行为模式