函数对象(仿函数)
函数对象的相关笔记
1. 定义¶
也叫仿函数。
如果一个类将()运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象。函数对象是一个对象,但是使用的形式看起来像函数调用,实际上也执行了函数调用,因而得名。
2. 举例¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
3. STL中的函数对象¶
在STL中定义了很多函数对象类模板
| 函数对象类模板 | 成员函数 T operator ( const T & x, const T & y) 的功能 |
| plus \<T> | return x + y; |
| minus \<T> | return x - y; |
| multiplies \<T> | return x * y; |
| divides \<T> | return x / y; |
| modulus \<T> | return x % y; |
| 成员函数 bool operator( const T & x, const T & y) 的功能 | |
| equal_to \<T> | return x y; |
| not_equal_to \<T> | return x! = y; |
| greater \<T> | return x > y; |
| less \<T> | return x < y; |
| greater_equal \<T> | return x > = y; |
| less_equal \<T> | return x <= y; |
| logical_and \<T> | return x && y; |
| logical_or \<T> | return x | y; |
| 成员函数 T operator( const T & x) 的功能 | |
| negate \<T> | return - x; |
| 成员函数 bool operator( const T & x) 的功能 | |
| logical_not \<T> | return ! x; |
例如,如果要求两个 double 型变量 x、y 的乘积,可以写:
multiplies\
less的实现
1 2 3 4 5 6 | |