函数对象

  • 生成器 不用参数就可以调用的函数符

  • 一元函数用一个参数可以调用的函数符

  • 二元函数用两个参数可以调用的函数符

  • 返回bool值的一元函数是谓词(predicate)

  • 返回bool值的二元函数是二元谓词(binary predicate)

  • 重载()运算符的类对象,可以直接使用类对象调用函数

预定义的函数符

  • 头文件include定义了多个模板类函数对象
  • 例如plus()``greater()

自适应函数符和函数适配器

  • 使用bind1st或者bind2nd将自适应二元函数转换为自适应一元函数
bind1st(f2,val) f1;

使用单个参数调用f1(x)时,等价于调用f2(val,x),此时,我们称f2()函数被适配
同理,bind2nd用于替换第二个函数参数

例如

transform(v1.begin(), v1.end(), ostream_iterator(cout, " "), bind1st(multiplies(), 2.5));

你可能感兴趣的:(函数对象)