迭代器删除之后的处理

原创 2015年11月21日 16:55:35
#include<iostream>
#include<list>
using namespace std;

/*测试迭代器删除当前位置的变动之后是否有效
 *结果无效,得重新设置,在这里我设置了一个局部变量tmp用于暂时存储下一个位置
 */
void test()
{
	list<int> l1;
	for(int i=0;i<100;i++)
	{
		l1.push_back(i);
	}
	list<int>::iterator it=l1.begin(),itEnd=l1.end();
	it=l1.begin();
	for(int i=0;i<l1.size();i++)
	{
		cout<<*it<<" ";
		it++;
	}
	cout<<endl;
	it=l1.begin();
	for(;it!=itEnd;++it)
	{
		list<int>::iterator tmp=it;
		tmp++;
		if((*it)%10==0)
		{
			l1.erase(it);
			cout<<__FILE__<<endl;
			it=tmp;
		}
	}
	cout<<"after erase "<<endl;
	it=l1.begin();
	for(int i=0;i<l1.size();i++)
	{
		cout<<*it<<" ";
		it++;
	}
	cout<<endl;
}
int  main()
{
	test();
	return 0;
}

版权声明:尚开源精神,亦需版权意识

相关文章推荐

如何处理C++删除容器中元素时导致的迭代器失效问题

从一个简单的问题开始,删除数组中某个元素后连续重复的元素,例如 1,1,2,3,3,1,1,1,4,0 ---> 1, 2,3,1,4,0。 考虑了几秒,然后就开始动手写代码了: #includ...

STL容器之删除元素,迭代器失效

转自博客:http://blog.csdn.net/panpanloveruth/article/details/7018549 一. 种类: 标准STL序列容器:vector、string、...

C++关于迭代器删除(erase)插入(insert)失效问题

初学者的我在学习迭代器的时候(今天这里主要说的是vector的迭代器)碰到了一些问题,纠结了好些时候,总算弄明白了一点。 迭代器会在删除插入等操作后失效,即在其删除插入位置后的迭代器会失效,那所...

UESTC 1339 郭大侠与线上游戏 (STL插入删除/迭代器)

STL erase后指针变化 对于用数组实现的数据结构(vector,deque),除一个元素后之后所有的迭代器都会失效 对于关联型数据结构,删除后只会对当前节点有影响 删除节点前应该先取得下一个节点...

vector中利用迭代器删除满足一定条件的元素或者值

#include "stdafx.h" #include #include #include #include using namespace std; class TestData { pub...

STL迭代器删除失效问题

http://www.tuicool.com/articles/zYv67b 下面材料整理自Internet&著作。 STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如...

STL容器的遍历插入或删除(迭代器失效问题的统一解决)

STL容器根据迭代器的失效问题,其实可以分为两类容器: (1)数组型容器的插入删除操作:vector、string、deque(均为顺序存储)         由于这类容器的插入或删除都会使所有迭...

STL中vector的删除操作引起迭代器失效和空间重新配置

学习STL时vector是最先学习也是用的最多的一类容器,它的通过动态管理内存从而实现数组长度的自增长为我们的使用带来了很大方便,然而它的这一特性也带来了一些陷阱:所谓动态增加大小,并不是在原空间之后...
  • u____
  • u____
  • 2014年06月16日 12:08
  • 815

安卓删除List里面某些一样的数据为何使用的是迭代器而不是for循环

今天写一个关于为何使用迭代器去删除list里面某一项一模一样的数据。我们知道的是for循环不是可以做到遍历么~那么直接使用list里面自带的remove(i)就可以直接删除里面的某一个项了么?而且还快...

STL之容器:选择时机,删除元素,迭代器失效

http://www.cnblogs.com/lichkingct/archive/2009/05/04/1449101.html 一. 种类: 标准STL序列容器:vector、str...
  • helonSY
  • helonSY
  • 2012年03月30日 22:10
  • 448
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:迭代器删除之后的处理
举报原因:
原因补充:

(最多只允许输入30个字)