64,681
社区成员
发帖
与我相关
我的任务
分享
for( it = v.begin(); it != v.end(); /*空表达式*/)
{
if( *it == 需要删除的值 ) // 这里假定需求是删除指定值的所有元素)
it = v.erase(it);
else
++it;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool
pred(const int &a)
{
if (a % 3 == 0)
return true;
else
return false;
}
int
main(int argc, char *argv[])
{
int i, n;
vector<int> vi;
vector<int>::const_iterator it;
n = 10;
for (i = 0; i < n; ++i)
vi.push_back(i);
for (it = vi.begin(); it != vi.end(); ++it)
cout << *it << ' ';
cout << endl;
vi.erase(remove_if(vi.begin(), vi.end(), pred), vi.end());
for (it = vi.begin(); it != vi.end(); ++it)
cout << *it << ' ';
cout << endl;
return 0;
}