1.概念
返回bool类型的仿函数称为谓词
如果operator()接受一个参数,叫做一元谓词。
如果operator()接受两个参数,叫做二元谓词。
2.一元谓词
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class ValidScore
{
public:
bool operator()(int val)
{
return val >= 60;
}
};
int main()
{
vector<int> v = { 20,30,50,70,90 };
auto iter = find_if((), (), ValidScore());
if (iter == ())
{
cout << "没有找到及格的分数" << endl;
}
else
{
cout << "找到及格的分数: " << *iter << endl;
}
getchar();
return 0;
}
3.二元谓词
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class MyCompare
{
public:
bool operator()(int v1, int v2)
{
return v1 > v2;
}
};
int main()
{
vector<int> v = { 20,30,70,90,50 };
sort((), (), MyCompare()); //从大到小排列
for_each((), (), [](int val) {
cout << val << " ";
});
getchar();
return 0;
}