容器erase删除的使用

原创 2015年11月17日 17:06:40

最近在用STL,莫名的遇到了这样的一个错误

http://img.blog.csdn.net/20130723104838296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJLbmlnaHQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

代码如下:

<span style="font-size:18px;">	std::vector<CWorkThread*>::iterator iter = m_busyList.begin();
	for(; iter != m_busyList.end()-1; iter++)
	{
		if( *iter == pThread )
		{
			iter = m_busyList.erase(iter);
			break;
		}
	}</span>

//<span style="font-family:'Times New Roman';">较为正确的删除方式</span>
m_busyList.erase(remove(m_busyList.begin(), m_busyList.end(), pThread), m_busyList.end());

删除容器中具有特定值的元素:

        如果容器是ector、string或者deque,使用erase-remove的惯用法。如果容器是list,使用list::remove。如果容器是标准关联容器,使用它的erase成员函数。

删除容器中满足某些条件的元素:

        如果容器是ector、string或者deque,使用erase-remove_if的惯用法。如果容器是list,使用list::remove_if。如果容器是标准关联容器,使用remove_copy_if & swap 组合算法,或者自己协议个遍历删除算法。

相关文章推荐

STL容器遍历删除时诡异的erase

STL容器遍历删除时诡异的erase 2011-07-07 13:02 我们知道STL中结点类容器(如:list,hash_map)遍历时进行删除时,需要这样做: for...

容器list使用之erase

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

STL容器遍历删除时诡异的erase

STL容器遍历删除时诡异的erase 2011-07-07 13:02 我们知道STL中结点类容器(如:list,hash_map)遍历时进行删除时,需要这样做: for...

c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件

本文导语:  Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector...

c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件

Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线...
  • Xwxcy
  • Xwxcy
  • 2016年01月21日 16:59
  • 692

删除vector容器中的对象元素的三种方法:pop_back, erase与remove算法

向量容器的成员函数pop_back()可以删除最后一个元素,而函数erase()可以删除由一个iterator指出的元素,也可以删除一个指定范围的元素。    还可以采用通用算法remove()来删...

c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件

Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线...
  • yuzeze
  • yuzeze
  • 2016年06月13日 10:45
  • 2412

剖析STL容器遍历删除时诡异的erase(iter++)

剖析STL容器遍历删除时诡异的erase(iter++) --------------------------------------------------------------------- ...

C++9.3.7 容器删除元素--erase、clear、pop_front函数

简介看一下9.5节容器之间的区别—-list类似于链表,容易增删改,queue是两端增删改容易。,所以删除时,用到最多的容器时list1.删除第一个或最后一个元素—–pop_front 和pop_ba...

C++ STL容器中erase的使用

erase()函数的功能是用来删除容器中的元素 函数原型: iterator erase(iterator where); iterator erase(iterator first,i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:容器erase删除的使用
举报原因:
原因补充:

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