C++函数式编程
<functional>
基类
binary_function<arg_type1, arg_type2, result_type>: 两个指定类型参数、返回指定类型的函数类的父类unary_function<arg_type, result_type>:指定类型参数、 返回指定类型的函数类的父类
实现算数操作符类
plus<arg_type>:+minus<arg_type>:-multiples<arg_type>:*divides<arg_type>:/modulus<arg_type>:%negate<arg_type>:-取反
实现比较操作
equal_to<arg_type>:==not_equal_to<arg_type>:!=less<arg_type>:<less_equal<arg_type>:<=greater<arg_type>:>greater_equal<arg_type>:>=
实现逻辑关系
logical_and<arg_type>:&&logical_or<arg_type>:||logical_not<arg_type>:!
产生函数对象
bind1st(fn, value):返回新一元函数对象,用与其绑定的value作为首个参数调用二元函数对象fnbind2nd(fn, value):返回新一元函数对象,用与其绑定的value作为第二个参数调用二元函数对象fnnot1(fn):返回新函数对象,且该函数对象为一元函数对象 时返回truenot2(fn):返回新函数对象,且该函数对象为二元函数对象 时返回trueptr_fun(fnptr):返回需要调用特定函数指针的新函数对象, 可能需要一个或两个同类型参数- 返回具有相同效果的函数对象,可以使得函数指针、 函数对象概念一体化,避免代码重复
例
1 | count_if(v.begin(), v.end(), bind2nd(less<int>(), 0)); |

