template <typename T>int compare(const T &v1, const T &v2)
{
if (less<T>()(v1, v2)) return -1;//这里的less<T>后面为什么有两对括号?第一对为何是空的?
}
template <typename T>int compare(const T &v1, const T &v2)
{
if (less<T>()(v1, v2)) return -1;//这里的less<T>后面为什么有两对括号?第一对为何是空的?
}
3 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答813 阅读
1 回答886 阅读
1 回答916 阅读
1 回答686 阅读
1 回答791 阅读
less是一个函数对象,所谓函数对象就是一个重载了调用运算符(就是“()”运算符)的类,它的对象可以“像函数一样使用”,所以叫做函数对象,第一个括号表示调用构造函数,后面的括号就是他的参数,你这个应该是C++ Primer上的例子吧,具体请看C++ Primer 5th第506页对函数调用运算符的介绍。