关闭

vector erase注意

标签: c++
72人阅读 评论(0) 收藏 举报
#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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:193次
    • 积分:21
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档