重载 operator()
比较仿函数
struct Less
{
bool operator()(int x, int y)
{
return x < y;
}
};
struct Greater
{
bool operator()(int x, int y)
{
return x > y;
}
};
int main()
{
Less less;
cout << less(1, 2) << endl;
cout << less.operator()(1, 2) << endl;
Greater gt;
cout << gt(1, 2) << endl;
return 0;
}
加上类模板
template<class T>
struct Less
{
bool operator()(const T& x, const T& y) const
{
return x < y;
}
};
template<class T>
struct Greater
{
bool operator()(const T& x, const T& y) const
{
return x > y;
}
};
int main()
{
Less<int> less;
cout << less(1, 2) << endl;
cout << Less<int>()(1, 2) << endl;
cout << Less<double>()(1.1, 2.2) << endl;
Greater<int> gt;
cout << gt(1, 2) << endl;
return 0;
}
如果数据类型,不支持比较,或者比较的方式,不是自己想要的,可以自己实现仿函数,控制比较逻辑。
(待续…)
|