代码是写一个function object
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class myPredicate
{
private:
int initNum;
int count;
public:
myPredicate(int i)
{
count = i;
initNum = 0;
}
bool operator()(int ) //一定要加int或者int i,为何??? 之前写过返回值是int的function object不需要加
{
return ++initNum == count;
}
};
int main()
{
vector<int>myVector = {1,2,3,4,5,6,7,8,9};
for (int i : myVector) cout << i << " ";
remove_if(myVector.begin(), myVector.end(), myPredicate(3));//调用后不会复原,可能VS2010上会复原,我用的是2017
cout << endl;
for (int i : myVector) cout << i << " ";
system("pause");
}