源码示例:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class IsEven
{
public:
bool operator()(int x)
{
return x % 2 == 0;
}
};
class LessThan
{
public:
bool operator()(int a, int b)
{
return a < b;
}
};
int main()
{
int arr[] {12,25,36,8,11,15,89,32,71};
vector<int> vec{12,25,36,8,11,15,89,32,71};
cout<<"Original form of both array and vector:
";
for(int e:arr)
{
cout<<e<<" ";
}
//sort the array
sort(begin(arr), end(arr),LessThan());
//print the sorted array
cout<<"
Here is the aorted array:
";
for(int e:arr)
{
cout<<e<<" ";
}
//Call remove_if for even values
auto start_removed = remove_if(begin(vec), end(vec), IsEven());
cout<<"
Here is the vector after call to remove_if:
";
for(int e:vec)
{
cout<<e<<" ";
}
//Erase the remove_if'd elements
vec.erase(start_removed, end(vec));
cout<<"
Here is the vector after call to erase:
";
for(int e:vec)
{
cout<<e<<" ";
}
cout<<endl;
return 0;
}
结果展示: