vector erase注意

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

阅读更多
文章标签: c++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭