Home C&C++函数库 c++ 语法 程序源码 Linux C库

<functional>

头文件
函数对象

函数对象是专门设计用于与函数语法类似的对象。在c++中,这是通过在类中定义成员函数operator()来实现的,例如:

struct myclass {
  int operator()(int a) {return a;}
} myobject;
int x = myobject (0);           // function-like syntax with object myobject

它们通常用作函数的参数,比如传递给标准算法的谓词或比较函数。

C++98:

☞ 基础类



unary_function 一元函数对象基类 (类模板)
binary_function 二元函数对象基类 (类模板)

☞ 运算类



算术运算:
plus 加法函数对象类(类模板)
minus 减法函数对象类(类模板)
multiplies 乘法函数对象类(类模板)
divides 除法函数对象类(类模板)
modulus 模函数对象类(类模板)
negate 取反函数对象类(类模板)
比较运算:
equal_to 用于相等比较的函数对象类(类模板)
not_equal_to 用于非相等比较的函数对象类(类模板)
greater 用于大于不等式比较的函数对象类(类模板)
less 用于小于不等比较的函数对象类(类模板)
greater_equal 用于大于等于比较的函数对象类(类模板)
less_equal 用于小于等于比较的函数对象类(类模板)
逻辑运算:
logical_and 逻辑与函数对象类(类模板)
logical_or 逻辑或函数对象类(类模板)
logical_not 逻辑非函数对象类(类模板)

☞ 适配器和转换函数



求反:
not1 返回一元函数对象的结果相反的一元函数对象(类模板)
not2 返回二元函数对象的结果相反的二元函数对象(类模板)
参数绑定:
bind1st 返回第一个参数绑定的函数对象(类模板)
bind2nd 返回第二个参数绑定的函数对象(类模板)
转换函数:
ptr_fun 将函数指针转换为函数对象(类模板)
mem_fun 将成员函数转换为函数对象(指针版本)(类模板)
mem_fun_ref 将成员函数转换为函数对象(引用版本)(类模板)

☞ 辅助类型



unary_negate 对一元函数对象求反的类(类模板)
binary_negate 对二元函数对象求反的类(类模板)
binder1st 生成绑定第一个参数的函数对象类(类模板)
binder2nd 生成绑定第二个参数的函数对象类(类模板)
pointer_to_unary_function 从指针生成一元函数对象类(类模板)
pointer_to_binary_function 从指针生成二元函数对象类(类模板)
mem_fun_t 从无参数成员生成函数对象类(指针版本)(类模板)
mem_fun1_t 从单形参成员生成函数对象类(指针版本)(类模板)
const_mem_fun_t 从const无参数成员生成函数对象类(指针版本)(类模板)
const_mem_fun1_t 从单形参const成员生成函数对象类(指针版本)(类模板)
mem_fun_ref_t 从无参数成员生成函数对象类(引用版本)(类模板)
mem_fun1_ref_t 从单参数成员生成函数对象类(引用版本)(类模板)
const_mem_fun_ref_t 从const无参数成员生成函数对象类(引用版本)(类模板)
const_mem_fun1_ref_t 从单形参const成员生成函数对象类(引用版本)(类模板)

C++11:

☞ 函数



这些函数根据其参数创建包装器类的对象:
bind 绑定函数参数(类模板)
cref 将引用包装器构造为const(类模板)
mem_fn 将成员函数转换为函数对象(类模板)
not1 返回取反一元函数对象(类模板)
not2 返回取反二元函数对象(类模板)
ref 构建引用包装器(类模板)

☞ 类



包装类

包装类是持有一个对象并具有与该对象类似的接口,但添加或更改其一些特性的类:
binary_negate 对二元函数求反对象类(类模板)
function 函数包装器(类模板)
reference_wrapper 引用包装器(类模板)
unary_negate 对一元函数求反对象类(类模板)
运算类

运算类是定义调用运算函数对象的类:
bit_and 按位与函数对象类(类模板)
bit_or 按位或函数对象类(类模板)
bit_xor 按位异或函数对象类(类模板)
divides 除法函数对象类(类模板)
equal_to 用于相等比较的函数对象类(类模板)
not_equal_to 用于非相等比较的函数对象类(类模板)
greater 用于大于不等式比较的函数对象类(类模板)
less 用于小于不等比较的函数对象类(类模板)
greater_equal 用于大于等于比较的函数对象类(类模板)
less_equal 用于小于等于比较的函数对象类(类模板)
plus 加法函数对象类(类模板)
minus 减法函数对象类(类模板)
multiplies 乘法函数对象类(类模板)
modulus 模函数对象类(类模板)
negate 取反函数对象类(类模板)
logical_and 逻辑与函数对象类(类模板)
logical_or 逻辑或函数对象类(类模板)
logical_not 逻辑非函数对象类(类模板)
其他类

bad_function_call 错误调用时抛出异常(类模板)
hash 默认哈希函数对象类(类模板)
is_bind_expression 是否绑定表达式(类模板)
is_placeholder 是否占位符(类模板)

☞ 命名空间



placeholders 绑定参数占位符(命名空间)

联系我们 免责声明 关于CandCplus 网站地图