16.5.2 预定义的函数符
### STL定义了多个基本函数符,它们执行诸如将两个值相加、比较两个值是否相等等操作。提供这些函数对象
### 是为了支持将函数作为参数的STL函数,因为‘ + ’、‘ - ’、‘ * ’、‘ / ’等符号是内置的运算符,而不是函数符。
### 头文件functional(以前为function.h)定义了多个模板类函数对象,可以使用这些模板类生成函数符以完成运算。
### 对于所有内置的算术运算符、关系运算符和逻辑运算符,STL都提供了等价的函数符。它们可以用于处理C++内置
### 类型或任何用户自定义类型(如果重载了相关的运算符)
### 运算符和相应的函数符:
运算符 | 相应的函数符 |
+ | plus |
-(减号) | minus |
* | multiplies |
/ | divides |
% | modulus |
-(负号) | negate |
== | equal_to |
!= | not_equal_to |
> | greater |
< | less |
>= | greater_equal |
<= | less_equal |
&& | logical_and |
|| | logical_or |
! | logical_not |
注意:老式C++实现使用函数符名times,而不是multiplies。
使用例子: transform(gr8.begin(), gr8.end(), m8.begin(), out, plus<double> ()); // 括号表示调用默认构造函数