C++标准库分析总结(九)——<仿函数/函数对象>
创始人
2024-02-19 05:11:49
0

目录

1.functor仿函数简介   

2 仿函数的分类

3 仿函数使用

4 仿函数可适配的条件






1.functor仿函数简介   

  • 仿函数STL中最简单的部分存在的本质就是为STL算法部分服务的,一般不单独使用。
  • 仿函数(functors)又称为函数对象(function objects),虽然函数指针虽然也可以作为算法的参数,但是函数指针不能满足STL对抽象性的要求,且无法和STL其他组件搭配
  • 仿函数就是使一个类的使用看上去像一个函数,其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了,本质就是类重载了一个operator(),创建一个行为类似函数的对象
  • 对于重载了()操作符的类,可以实现类似函数调用的过程,所以叫做仿函数,实际上仿函数对象仅仅占用1字节,因为内部没有数据成员,仅仅是一个重载的方法而已。
  • 实际上可以通过传递函数指针实现仿函数类似的功能,但是为了和STL内部配合使用,他提供了仿函数的特性

2 仿函数的分类

标准库目前提供了约有24个仿函数,分为算数类、逻辑运算类、相对关系类。

3 仿函数使用

下图中myclass是我们自己写的仿函数,但是由于没有继承仿函数的公共父类,所以就不能融入到STL中。

4 仿函数可适配的条件

如果我们要自己写仿函数,并且融入到STL中, 就必须继承两个中的一个父类两个操作符的父类或者一个操作符的父类),只有继承了才能被适配器去修饰和改造。

相关内容

热门资讯

做实公益诉讼 守护峡江文脉(法... 本报记者 姜 峰 图①:重庆市忠县人民检察院检察官现场查看石宝寨寨门。 张海波摄 图②:重庆市巫溪...
法院:驳回诉讼请求 员工举报上司职场霸凌反被起诉侵犯名誉权 法院:驳回诉讼请求 员工向公司领导、同事发送邮件举报上司职...
大唐电信科技股份有限公司关于公... 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、...
深圳广田集团股份有限公司 关于... 本公司及董事会全体成员保证信息披露的内容真实、准确、完整,没有虚假记载、误导性陈述或重大遗漏。 深圳...
广东华特气体股份有限公司 关于... 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、...
英国推出新措施打击侵害妇女和女... 中新社伦敦12月17日电 (欧阳开宇 刘施岑)英国内政部17日宣布推出一项打击侵害妇女和女童暴力犯罪...
海南封关绘就开放新图景 上市公... 图①为三亚大东海旅游区。 图②为海口复兴城互联网信息产业园。 图③为博鳌乐城国际医疗旅游先行区。...
法国内政部网络系统遭入侵:数据... 大象新闻2025-12-17 23:06:30 法国内政部长洛朗·努内兹17日接受法国新闻广播电台采...
北京市永定河保护条例 北京市人民代表大会常务委员会公告 〔十六届〕第47号 《北京市永定河保护条例》已由北京市第十六届人民...
专访海南社科院王艳婷:从“打开... 12月18日,海南即将启动全岛封关运作,成为中国对外开放历程中的一个里程碑事件。 在此背景下,海南省...