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;
}

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

相关文章推荐

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

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

关于List容器的erase

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

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

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

ios_restore_without_erase

  • 2015-07-25 11:48
  • 3.09MB
  • 下载

STL中用erase()方法遍历删除元素注意的问题

转自:http://www.cppblog.com/Herbert/archive/2009/01/08/70479.html   STL中的容器按存储方式分为两类,一类是按以数组形式存储的...

Erase Test.zip

  • 2009-12-08 23:41
  • 1.19MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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