要使用STL提供的函数对象,则必须添加头文件
#include
(1)用于算术运算的函数对象:
一元函数对象:即仅有一个参数的函数对象
negate(取反,1变为-1);
例子:
template
class square
{
public:
T operator()(T &v)
{
return v * v;
}
};
transform(s.begin(), s.end(), ostream_iterator(cout, " "), square());
二元函数对象:即有2个参数的函数对象
plus(加)、minus(减)、multiplies(乘)、divides(除)、modulus(取模);
class MultClass{
public:
int operator()(int x,int y)const{
return xy;
}
}
累加算法accumulate
accumulate(a,a+N,1,MultClass())
int mult(int x,int y){
return x
y;
}
accumulate(a,a+N,1,mult);
或者直接使用头文件中的函数对象
accumulate(a,a+N,1,multiplies())
(2)用于逻辑运算的函数对象
一元谓词:logical_not
二元谓词:logical_and、logical_or
他们的返回值类型都为bool型函数对象
(3)用于关系运算的函数对象
二元谓词:
equal_to、not_equal_to、greater、less、greater_equal、less_equal
STL提供的函数对象
本文内容实在贺利坚老师的视频培训课的基础上做的总结,以便后续复习使用。

相关文章: