谓词

  • 谓词
    • 一元谓词
    • 二元谓词

谓词

概念:
1、返回bool类型的仿函数称为谓词
2、如果operator()接受一个参数,那么叫做一元谓词
3、如果operator()接受两个参数,那么叫做二元谓词

一元谓词

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class graterfive
{public:bool operator()(int val) {//一元谓词return val > 5;}
};
void test1()
{vector<int> v;for (int i = 0; i < 10; i++) {v.push_back(i);}vector<int>::iterator it = find_if(v.begin(), v.end(), graterfive());if (it == v.end()) {cout << "没找到" << endl;}else {cout << "找到:" << *it << endl;}
}
int main(void)
{test1();return 0;
}

总结:参数只有一个的谓词,称为一元谓词。


二元谓词

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Mycompare
{public:bool operator()(int v1,int v2) {//二元谓词return v1 > v2;//按照从大到小排序}
};
void test1()
{vector<int> v;v.push_back(30);v.push_back(20);v.push_back(50);v.push_back(40);v.push_back(10);cout << "排序前:" << endl;for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {cout << *it << " ";}cout << endl;   cout << "----------------" << endl;cout << "排序后:" << endl;sort(v.begin(), v.end(),Mycompare());for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {cout << *it << " ";}cout << endl;
}
int main(void)
{test1();return 0;
}

总结:参数只有两个的谓词,称为二元谓词。

C++谓词(一元谓词,二元谓词)相关推荐

  1. 【C++ 十九】STL-函数对象(仿函数)、一元谓词、二元谓词、算术仿函数、关系仿函数、逻辑仿函数

    STL-函数对象(仿函数).谓词.内建函数对象 文章目录 STL-函数对象(仿函数).谓词.内建函数对象 前言 1 函数对象 1.1 函数对象概念 1.2 函数对象使用 2 谓词 2.1 谓词概念 2 ...

  2. 一元函数对象、一元谓词、二元函数对象、二元谓词

    一元函数对象:函数参数1个 二元函数对象:函数参数2个 一元谓词 函数参数1个,函数返回值是bool类型,可以作为一个判断式,谓词可以是一个仿函数,也可以是一个回调函数. 二元谓词 函数参数2个,函数 ...

  3. C++中的谓词(一元谓词 二元谓词)

    1.概念 返回bool类型的仿函数称为谓词 如果operator()接受一个参数,叫做一元谓词. 如果operator()接受两个参数,叫做二元谓词. 2.一元谓词 #include<iostr ...

  4. Java 一元、二元运算符、三目条件运算符(三元运算符)

    运算符可以是一元.二元或三元的. 一元运算符有1个操作数.例如,递增运算符"++"就是一元运算符. 二元运算符有2个操作数.例如,除法运算符"/"有2个操作数. ...

  5. java 一元 二元 三元_一元、二元和三元关系

    你好呀 欢迎来到一百挑战 一起在学习中寻找自己的幸福 这是学习挑战七的第十三周,这周的主题是"一元.二元和三元关系". 这周的内容,是让我们从一元.二元和三元的角度去看待关系,老师 ...

  6. mysql谓词_Mysql的等价谓词重写

    总之,存在以下规则: 1:LIKE规则:是对LIKE谓词的等价重写,即改写LIKE谓词为其他等价的谓词,以更好地利用索引进行优化 2:BETWEEN-AND规则:是BETWEEN-AND谓词的等价重写 ...

  7. oracle去掉谓词推入,消除谓词推进

    今天,还是用第一篇博文的例子,看下怎么消除谓词推进.首先先上图,这是一个发生了谓词推进的例子. sql: SELECT COUNT(1) AS count FROM ( SELECT a.ykf272 ...

  8. java 谓词_Java中的谓词

    问题 我正在浏览Java中使用Predicate的代码.我从未使用过Predicate.有人可以指导我对Predicate的任何教程或概念性解释及其在Java中的实现吗? #1 热门回答(200 赞) ...

  9. mysql谓词_MySQL 子查询谓词

    MySQL 子查询分类 可以查看item_subselect.h中的定义: enum subs_type {UNKNOWN_SUBS, SINGLEROW_SUBS, EXISTS_SUBS, IN_ ...

最新文章

  1. GString及IntelliJIdea中调试Groovy的操作步骤
  2. gaia引擎分析(二)场景管理
  3. Linux线程——线程创建和基本使用(多线程并发)
  4. python arcgis 图书_arcgis python
  5. CF980D Perfect Groups
  6. Andrew Ng深度学习课程笔记
  7. Direct 3D学习笔记(三)——光照与材质
  8. php对mysql解决乱码_PHP彻底解决mysql中文乱码-阿里云开发者社区
  9. 字段合并_报表数据合并困难?找VBA!数据不标准字段缺失如何合并?找VBA
  10. 从零开始撸一个ajax框架
  11. JDK 和 JRE 有什么区别
  12. jsplumb入门教程及视频教程链接
  13. JavaScript点击背景图片切换
  14. Presto查询出现error executing query异常
  15. 知云文献翻译打不开_科研福音,论文翻译神器系列!
  16. python制作折线图_python 生成折线图
  17. 【轴承故障分解】基于 ITD实现轴承故障信号分解含Matlab源码
  18. Mac电脑Safari 浏览器中Cookie 和网站数据如何管理
  19. 关于VB.NET IIF函数
  20. html 怎么传递时间戳,记时 传入 时间戳

热门文章

  1. 程序员之间丧心病狂的鄙视链 你在哪一层?
  2. bit.ly 短地址转换_使用PHP创建Bit.ly短URL
  3. 制作抖音超火的罗盘时钟(HTML+CSS+JS)
  4. Totam animi repellendus consequuntur ad.Deserunt temporibMous nulla soluta distinctio voluptas esse.
  5. 如何把docx转成doc
  6. android.view.InflateException: Binary XML file line #10: Error inflating class com.android.xiong.han
  7. 一阶零输入响应例题_一阶RC电路零输入响应的求解.PPT
  8. vsomeip源码梳理 -- Event订阅流程
  9. CSS小技巧---线性渐变linear-gradient/径向渐变radial-gradient
  10. 真假美猴王:假冒Android版赛博朋克2077,暗含勒索软件