函数指针有缺点,最重要的是它无法持有自己的状态(局部状态),也无法达到组件技术中的可适配性(也就是无法再将来某些修饰徐条件加上,以达到改变其状态)。因此,STL算法的特殊版本所接受的所谓的”条件“或”策略“或”一整组操作“都是以仿函数呈现的。

所谓仿函数(functor)就是使用起来像函数一样的东西。如果对某个class进行operator()重载,它就是一个仿函数类,该函数就是一个仿函数

//仿函数类
template<class T>
struct Greater
{//仿函数bool operator()(const T& a, const T& b){return a > b;}
};

使用示例:

void test()
{Greater<int> g;//原型bool ret = g.operator()(13, 14);cout << ret << endl;//简写形式-使用方法和函数类似ret = g(13, 14);cout << ret << endl;
}

运行结果:

C++ 什么是伪函数,以及伪函数的使用相关推荐

  1. pl/sql 测试函数_如何在SQL单元测试中使用伪函数?

    pl/sql 测试函数 In this article series, we are exploring SQL unit testing, in general, and also we are r ...

  2. 为什么必须是final的呢?

    一个谜团 如果你用过类似guava这种"伪函数式编程"风格的library的话,那下面这种风格的代码对你来说应该不陌生: 1 2 3 4 5 6 7 8 9 public void ...

  3. C++_STL——map、multimap、set、multiset

    C++_STL--map.multimap.set.multiset 内部都由红黑树实现 这里专栏里其他文章提到的函数(方法)就不会再说 参考:cplusplus 有序哈希表 有序不可重复哈希表(映射 ...

  4. C++_STL——queue(and priority_queue)

    C++_STL--queue(and priority_queue) queue: template <class T, class Container = deque<T> > ...

  5. java stream 取某个字段_java8的函数式编程和stream使用心得

    1:函数式编程 在很多其他的编程语言里面,都可以实现函数式的编程,也就是函数可以作为变量去灵活使用,但是java一直都不可以,之前很多都使用一些匿名内部类这种丑的亚批的代码.java8之后算是可以使用 ...

  6. php函数的实现原理及性能分析

    2019独角兽企业重金招聘Python工程师标准>>> 前言 在任何语言中,函数都是最基本的技术单元之一.对于php的函数,它具有哪些特点?函数调用是怎么实现?php函数的性能如何, ...

  7. FSM状态机之状态模式

     首先声明一点,这个模式是我目前见过最好用(本人观点),但是也是最难理解的一个(本人观点). 所以大家需要做好心理准备,如果,对这个模式没有特别强烈的需求,比如: 我有一个Button,我按次数点击它 ...

  8. 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证

    SSL/TLS握手过程可以分成两种类型: 1)SSL/TLS 双向认证,就是双方都会互相认证,也就是两者之间将会交换证书. 2)SSL/TLS 单向认证,客户端会认证服务器端身份,而服务器端不会去对客 ...

  9. Linux之时钟中断

    from:深入分析Linux内核源码(http://oss.org.cn/kernel-book/) 时钟中断的产生 Linux的OS时钟的物理产生原因是可编程定时/计数器产生的输出脉冲,这个脉冲送入 ...

最新文章

  1. 梦幻西游手游服务器维护时段,梦幻西游手游2018合区时间服务器汇总详解
  2. linux资源利用率检查_使用free命令查看实际内存占用(可用内存)
  3. python请求post无返回结果_Python请求POST返回不完整的内容
  4. 基于SpringBoot和Vue的分布式爬虫系统(JavaWeb)
  5. 结对开发石家庄地铁系统
  6. insertAfter()
  7. Docker容器的简单操作及应用部署
  8. python做一个小游戏_利用python做个小游戏
  9. Web报表页面如何传递中文参数
  10. 结对编程其实可以变变?
  11. 安笙机器人_张翰新戏搭档徐璐!包贝尔要和辛芷蕾演奇幻电影?
  12. 产品沉思录 #Vol.20200315:交易平台研究
  13. sip协议详解_基于SIP协议的媒体录音规范12个应用场景-SIPREC/RFC6341详解
  14. c语言电脑蓝屏代码,电脑蓝屏代码0x0000001a的解决方法
  15. 操作系统实验七:动态分区分配方式的模拟
  16. 北京市关于印发建筑工人实名制管理办法(试行)的通知
  17. 思岚RPLIDAR A2激光雷达开箱
  18. 软考__常用英语单词
  19. 谷歌跟oracle_Google vs Oracle –判决临近,Oracle的知识产权案件步履蹒跚
  20. PseudoSeg: Designing Pseudo Labels for Semantic Segmentation阅读笔记

热门文章

  1. 在线笔记存代码_李宏毅《机器学习》完整版笔记发布
  2. pg库和mysql的优缺点_MySQL与PostgreSQL的实际性能比较
  3. java中file类乱,【JAVA SE基础篇】47.file类的方法
  4. 双电容单相电机接线图解_单相电机要用电容,三相电机为何不需要?
  5. DBA警世录:备份重于一切
  6. cdn回源php_别让CDN的回源把你的服务器拖垮,采用正确的回源策略
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的图书管理系统
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的粮店粮食库存管理系统
  9. 基于JAVA+Servlet+JSP+MYSQL的幼儿园管理系统
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的进销存管理系统