vector 移除与某值想得的所有元素

来源:互联网 发布:tcl电视如何看网络电视 编辑:程序博客网 时间:2024/05/22 17:37
#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>using namespace std;typedef vector<int> vecInt;typedef vector<int>::iterator vecIterator;void print(vecInt& vInt){vecIterator itBeg = vInt.begin();vecIterator itEnd = vInt.end();for (NULL; itBeg != itEnd; ++itBeg){cout << *itBeg << "  ";}cout << endl;}// 删除容器的指定值 template<class T>bool DelSpecValue(std::vector<T>& coll, T val){// 注意算法 remove 只是移除元素,但未缩减容器的大小,所以得调用 coll.erasecoll.erase(remove(coll.begin(), coll.end(), val),coll.end()); return true;}// 删除容器第一个找到的值template<class T>bool DelFindFirstValue(std::vector<T>& coll, T val){std::vector<T>::iterator pos = find(coll.begin(), coll.end(), val);if (pos != coll.end()){coll.erase(pos);}return true;}int _tmain(){vecInt vInt;for (int i = 0; i < 10; ++i){vInt.push_back(i);vInt.push_back(i);}print(vInt);cout << endl << " ============================ " << endl;DelSpecValue(vInt, 2);DelFindFirstValue(vInt, 5);print(vInt);return 0;}

0 0