STL之Funtion Object

本文介绍了STL中函数对象的概念及其应用,包括如何通过重载operator()实现函数对象,以及函数对象配接器的作用。此外,还列举了STL提供的基本数值运算和比较运算。

STL之Funtion Object

函数对象是为了让算法更加一般化,它可以通过函数指针来实现,也可以重载opterator()来实现,它还可以是一个class一样拥有member functions和member variabs。任何function object concept的基本条件只是:如果f是一个functio nobject,那么就可以将opterator()应用于f。function object可用来判断某个条件是否成立,也可以用来对区间进行某种处理,返回任何种类值。但返回bool值的更常使用,且一引数的称为Predicate,两个引数称为Binary Predicate。
函数对象也有相关型别,即其引数与返回值的型别。一般也是通过typedefs来解决。
Function Object Adapters(函数对象配接器),它是将某种接口转换为另一种接口的组件,一般是通过嵌套封装实现,给Adapter传入某Function Object,返回另一种Function Object。见列如下:
  • 将传入函数的l返回值取反,比如函数pre(x)判断是否为偶数,则Adapter返回!pre(x)
  • 将函数指针转为Adaptable Unary Function,(单参与双参)。
  • binder1st和binder2nd,可以将Adaptable Binary Function转换为Unary Function;
  • unary_compose。将f和g合成h,即h(x)=f(g(x));

    STL包含的基本数值运算:plus,minus,multiplies,divides,modulus,negate.
    基本比较运算:equal_to,not_equal_to,greater less greater_equal,less_equal.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值