概念:
返回bool类型的仿函数被称为谓词;
如果operator()接受一个参数,那么就叫一元谓词;
如果operator()接受两个参数,那么就叫二元谓词;
一、一元谓词
#include<iostream>using namespace std;#include <vector>#include <algorithm>//仿函数 返回值类型是bool数据类型,称为谓词一元谓词class GreaterFive{public: bool operator()(int val) { return val > 5; }};voID test01(){ vector<int>v; for (int i = 0; i < 10; i++) { v.push_back(i); } 查找容器中 有没有大于5的数字 GreaterFive() 匿名函数对象 vector<int>::iterator it = find_if(v.begin(),v.end(),GreaterFive()); if (it == v.end()) { cout << "未找到" << endl; } else { cout << 找到了大于5的数字为: " << *it << endl; }} main() { test01(); system(pause"); return 0;}
二、二元谓词
#include<iostream>二元谓词 MyCompare{int va11, val2) { return va11 > val2; }};v; v.push_back(10); v.push_back(40203050); sort(v.begin(),v.end()); for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " ; } cout << endl; 使用函数对象 改变算法策略,变为排序规则为从大到小 sort(v.begin(),MyCompare()); cout << ----------------------- endl; endl;};}总结
以上是内存溢出为你收集整理的c++函数对象之谓词全部内容,希望文章能够帮你解决c++函数对象之谓词所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)