zoukankan      html  css  js  c++  java
  • STL在迭代的过程中,删除指定的元素

    直接上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;
    
    }
    

    执行结果:


  • 相关阅读:
    mySQL 重点
    JS代码预解析原理、函数相关、面向对象
    PHP中对数组进行操作的常用函数总结
    js函数和数组总结
    深入理解css网页布局细节
    AngularJS表单验证
    发送消息 缺少 更新的字段值
    springboot 下 logback + MDC的使用
    Mock的使用2
    StringUtils # split 的坑
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6915612.html
Copyright © 2011-2022 走看看