Loading... <div class="tip inlineBlock share"> 谓词是指<span style="color:#A52A2A">普通函数</span>或<span style="color:#A52A2A">重载的operator()</span>返回值是bool类型的函数对象(仿函数)。如果operator接受一个参数,那么叫做<span style="color:#A52A2A">一元谓词</span>,如果接受两个参数,那么叫做<span style="color:#A52A2A">二元谓词</span>,谓词可作为一个判断式。 </div> ```C++ #include<iostream> #include<vector> #include<algorithm> using namespace std; //谓词:普通函数 或 仿函数 返回值是bool类型的函数,这样的函数或仿函数称为谓词 //一元谓词 class Mypaer20 { public: bool operator()(int value) { return value > 20; } }; //二元谓词 class Mycomper { public: bool operator()(int v1, int v2) { return v1 > v2; } }; int main() { vector<int> v; v.push_back(10); v.push_back(15); v.push_back(18); v.push_back(19); v.push_back(23); v.push_back(21); v.push_back(28); /*一元谓词*/ //寻找第一个大于20的数字 vector<int>::iterator it = find_if(v.begin(), v.end(), Mypaer20()); if (it != v.end()) { cout << "找到大于20的数为" << *it << endl; } else { cout << "未找到" << endl; } /*二元谓词*/ //对数据进行从大到小的排序 sort(v.begin(), v.end(), Mycomper()); for_each(v.begin(), v.end(), [](int val) {cout << val << endl; }); //[](){} 是匿名函数 lambda表达式 //这样我们不需要定义函数,一行就可以打印了。 return 0; } ``` ![](https://blog.fivk.cn/usr/uploads/2021/04/1439662027.png) <div class="tip inlineBlock info"> 没什么好说的... </div> 最后修改:2021 年 04 月 20 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏