function object与重载()有什么区别?
在泛型算法中使用function object可以得到一些特殊的作用,比如:
……
class greater{
public:
bool operator()(const string &s1,
const string &s2)
{ return s1.size()>s2.size();}
};
……
sort(vec.begin(),vec.end(),greater());//sort为系统提供泛型函数
……
可以改变sort的运行机制。
我的问题是:
1.在sort内部,greater()是如何改变sort运行机制的?比如参数s1、s2如何被传值的?
2.它与重载()有什么区别?