bool operator()(Iterator it1, Iterator it2) const { return (*it1 < *it2); }
谁能帮我解释一下这个功能,谢谢!这是否意味着重载运算符()?超载后,如何使用它?
bool operator()(Iterator it1, Iterator it2) const { return (*it1 < *it2); }
谁能帮我解释一下这个功能,谢谢!这是否意味着重载运算符()?超载后,如何使用它?
这意味着如果你有一个class
被调用Compare
的东西,例如:
Compare cmp;
....
if(cmp(it1, it2))
{
std::cout << "First element is greater";
}
else
{
std::cout << "Second element is greater";
}
你的对象变得像 afunction
并且它在C++
world中被调用Functor
。
这是一个重载括号的例子
http://www.java2s.com/Code/Cpp/Overload/DemoOverload.htm
和另一个
http://www.learncpp.com/cpp-tutorial/99-overloading-the-parenthesis-operator/