STL之Funtion Object

来源:互联网 发布:淘宝手办店黑名单 编辑:程序博客网 时间:2024/06/07 01:56

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.

原创粉丝点击