标准库中定义了一组表示算术运算符,关系运算符和逻辑运算符的类,每个类分别定义了一个执行命令操作的调用运算符,例如:plus类定义了一个函数调用运算符,用于对一对运算对象执行+的操作;modules类定义了一个调用运算符执行二元的%操作;equal_to类执行==,等等。
这些类都被定义成模板的形式,我们可以为其指定具体的应用类型,这里的类型即调用运算符的形参类型。例如:plus<string>令string加法运算符作用于string对象。
这些函数对象模板在functional头文件中
在算法中可以使用标准库函数对象
例如:sort(v.begin(), v.end(), greater<int>())
其中greater<int>()是库函数中的函数对象