函数对象(仿函数)
函数对象的相关笔记
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 |
|