list-erase

原创 2016年08月29日 16:12:48
#include<stdio.h>
#include<string>
#include<iostream>
#include<string.h>
#include<list>
typedef std::list<int> CList_int;

void deleteAllList()
{
    CList_int::iterator  it, it1;

    if( m_list.empty() )
    {
        return;
    }

    for( it = m_list.begin(); it != m_list.end();)
    {
        it1 = it;
        it++; //一定要先缓存下一个节点,在erase()本节点,否则segment fault。list可以这样子,因为erase知会影响到本节点,
		       //但是vector就不可以,因为一旦erase一个,其余节点全部失效了,所以只能先循环delete掉。然后在循环外面用clear()。
        //delete *it1;
        m_list.erase(it1);
    }
}

int main()
{
	CList_int m_list;
	cout << "before push_back the size is : " << m_list.size() << endl;
    for (int i = 0; i < 10; ++i)
	{
		m_list.push_back(10 * i);	
	}
	cout << "after1 push_back the size is : " << m_list.size() << endl;
	
	deleteAllList();
	
	cout << "after2 push_back the size is : " << m_list.size() << endl;
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

基于C++ list中erase与remove函数的使用详解

erase的作用是,使作为参数的迭代器失效,并返回指向该迭代器下一参数的迭代器。 如下: 复制代码代码如下: list ParticleSystem; list::iter...

容器list使用之erase

容器list使用之erase  (2011-01-11 10:46:02) 转载▼ 标签:  容器   list   erase   杂谈 ...

C++中list的erase()函数问题

erase的作用是,使作为参数的迭代器失效,并返回指向该迭代器下一参数的迭代器。...

STL vector deque list set map的erase()

STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时...

STL set的使用 vector List set map 成员函数erase

STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时...

C++ list中erase和remove函数的用法

erase的作用是,使作为参数的迭代器失效,并返回指向该迭代器下一参数的迭代器。 如下: list ParticleSystem; list::iterator pointer; if...
  • ameyume
  • ameyume
  • 2013年03月24日 19:49
  • 10496

容器list使用之erase

转自 : http://blog.sina.com.cn/s/blog_66f74d9f0100om0f.html 今天无论如何要写点东西,算是搞清楚了一点东西吧。有点小小的成就感。...

关于List容器的erase

之前在程序里面使用了list容器,其中用到了erase()函数,之前一直没出现问题,这两天突然莫名奇妙。花了点时间,搞清楚了erase()函数的机理。        常用的删除容器中元素的方法是如下...

注意vector, list, set, map成员函数erase

From: http://blog.csdn.net/tujiaw/article/details/7770498 [cpp] view plaincopy ...

C++/STL用erase删除元素(vector,deque),(list,set,map)

STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:list-erase
举报原因:
原因补充:

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