企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 简介 谓词是指普通函数或重载的operator()返回值是bool类型的函数对象(仿函数)。 如果operator接受一个参数,那么叫做一元谓词,如果接受两个参数,那么叫做二元谓词,谓词可作为一个判断式。 # 一元谓词 ~~~ struct GreaterThanFive { bool operator() (int v) { return v > 5; } }; //一元谓词 void test01() { vector<int> v; for (int i = 0; i < 10; ++i) { v.push_back(i); } vector<int>::iterator ret = find_if(v.begin(), v.end(), GreaterThanFive()); if (ret == v.end()) { cout << "没有找到!" << endl; } else { cout << "找到: " << *ret << endl; } //找到: 6 } ~~~ # 二元谓词 ~~~ struct MyCompare { bool operator() (int v1, int v2) { return v1 > v2; } }; void test02() { vector<int> v; srand((unsigned)time(NULL)); for (int i = 0; i < 10; ++i) { v.push_back(rand() % 100); } for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; //排序算法 sort(v.begin(), v.end(), MyCompare()); for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; } ~~~