生成器
不用参数就可以调用的函数符一元函数
用一个参数可以调用的函数符二元函数
用两个参数可以调用的函数符返回bool值的一元函数是
谓词
(predicate)返回bool值的二元函数是
二元谓词
(binary predicate)
- 重载
()
运算符的类对象,可以直接使用类对象调用函数
预定义的函数符
- 头文件
include<functional>
定义了多个模板类函数对象 - 例如
plus<int>()``greater<int>()
自适应函数符和函数适配器
- 使用
bind1st
或者bind2nd
将自适应二元函数转换为自适应一元函数
bind1st(f2,val) f1;
使用单个参数调用f1(x)时,等价于调用f2(val,x),此时,我们称f2()函数被适配
同理,bind2nd
用于替换第二个函数参数
例如
transform(v1.begin(), v1.end(), ostream_iterator<double, char>(cout, " "), bind1st(multiplies<double>(), 2.5));