返回bool类型的仿函数称为谓词
一元谓词:operator()接受一个参数
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
//仿函数如果返回类型是bool称为谓词
class greaterfive
{
public:
bool operator()(int val)
{
return val > 5;
}
};
void test1()
{
vector<int>v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
//查找容器中是否有大于5的数
//greaterfive() 是匿名对象,不用创建对象就能进行调用
//find_if是算法,查找是否有数字满足条件,输出为位置的迭代器
find_if(v.begin(), v.end(), greaterfive());
}
二元谓词:operator()接受两个参数
class mycompare
{
public:
bool operator()(int v1,int v2)
{
return v1>v2;
}
}