目录
1, 什么是谓词
1-1, 一元谓词
1-2, 二元谓词
1, 什么是谓词
返回bool类型的仿函数, 叫着谓词, 分为一元谓词和二元谓词
1-1, 一元谓词
operator()接收一个参数,叫着一元谓词
class MyClass
{
public://接收1个参数,为一元谓词bool operator()(int val){return val > 5;}
};//使用一元谓词
//find_if通过指定区间和一元谓词, 找出大于5的值, 找到一个退出find_if
auto a = find_if(v.begin(), v.end(), MyClass());
1-2, 二元谓词
operator()接收两个参数,叫着二元谓词
class MyClass
{
public://接收2个参数,为二元谓词bool operator()(int val1, int val2){return val1 > val2;}
};void test1()
{vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//通过谓词实现降序排序sort(v.begin(), v.end(), MyClass());for (auto it : v){cout << it << " ";}cout << endl;
}int main()
{test1();system("pause");return 0;
}