STL:仿函数

写在前面

STL当中的仿函数

主要内容

函数对象和仿函数

仿函数是早期的命名,采用的新的名称是函数对象。
函数对象就是一种具有函数特质的对象。
这种东西在调用者可以像函数一样被调用,在被调用者则以对象所定义的()操作符扮演函数的实质角色。

仿函数的作用

第一个版本表现在最常用的某种运算
第二个版本表现在最泛化的演算流程,允许用户已模板参数来指定所要采取的策略

实现第二种版本的方式

  • 函数指针
  • 仿函数

函数指针可以达到要求但是为什么要用仿函数呢?因为函数指针不能满足STL对于抽象性的要求,函数指针无法和其他的STL组件搭配。

仿函数本质

仿函数就是行为类似函数的对象。其类别必须重载()操作符。

可配接的关键

仿函数的相应的型别主要用来表现函数的参数和返回值类型,
我们可以提取这些信息相应的型别都只是一种typedef
所有的操作都在编译器完成没有任何的执行效率的损失不带来任何的负担。
STL当中定义了两个类分别代表一元仿函数和2元仿函数,STL不支持3元和多元仿函数。
其中没有任何的数据成员和成员函数,有的只有型别的嵌套定义typedef
任何仿函数只需要依据个人需求继承其中的一个c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值