vector erase注意

原创 2015年11月18日 15:02:26
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void print (int& val)
{
	cout << val << endl;
}

void test_vec ()
{
	vector<int>	vec;
	for (int i = 0; i < 10; ++i)
	{
		vec.push_back(i);
	}

	for_each(vec.begin(), vec.end(), print);

	vector<int>::iterator first = vec.begin();

	while (first != vec.end())
	{
		if (*first > 5)
		{
			first = vec.erase(first);
		}
		else
		{
			++first;
		}
	}
	cout << endl;
	for_each(vec.begin(), vec.end(), print);
}

int main (void)
{
	test_vec();
	return EXIT_SUCCESS;
}

相关文章推荐

vector中erase用法注意事项

以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错。今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.e...

注意 c++ vector中的erase()

今天帮同事解决了一个程序异常挂掉的问题,最后定位到是在vector删除元素之后,再把该对象传递给下一个app时下一个app莫名其妙的挂了。认真检查了代码发现是这里的问题。网上有个帖子,讲的挺细致的,特...

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

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

vector::erase函数的注意事项

vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 iterator erase(   iterator _W...

C++中vector中erase用法注意事项

vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase(   iterator _...

hackerrank>Dashboard>C++>STL>Vector-Erase

You are given a vector of integers.Then you are given queries.First query consists of integer ...

opencv使用vector erase 去除部分边界

一开始想要进行opencv所提取轮廓的小面积区域去除,在网上找了一圈,发现可以使用vector进行,于是就使用了下列代码:         findContours( canny_output, c...

vector的erase()影响

今天在调试一个程序,发现返回的数值有问题。 程序结构如下所述: 为了程序的高效动作,...
  • jszj
  • jszj
  • 2014年10月14日 15:35
  • 680

vector中的删除,erase和remove的小疑惑--【STL】

对于vector容器的使用,平时只是简单的进行遍历查找一下,未曾进行其它操作,这不,今天出了一点差错; earse方法的操作是将此时的节点删除,然后指向被删除节点的下一个: 如对数据1 6 6 4 7...
  • xjm199
  • xjm199
  • 2014年05月01日 14:29
  • 1733

没有躲过的坑--vector使用erase后迭代器变成野指针

vector上镜率非常高,但是最近又被他fuck了一下。使用的就是vector的erase方法。erase–return value 首先需要明确一下vector的两种erase:C++98中是这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vector erase注意
举报原因:
原因补充:

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