【发布时间】:2020-05-23 09:57:35
【问题描述】:
name_compare() 是调用默认构造还是sort(vs.begin(), vs.end(), name_compare()); 中class name_compare 的operator()?
我认为是第一个。对吗?
如果您能提供有关此问题的任何提示,我将不胜感激。
struct Record {
string name;
// ...
};
struct name_compare { // compare Records using "name" as the key
bool operator()(const Record& a, const Record& b) const
{ return a.name<b.name; }
};
void f(vector<Record>& vs)
{
sort(vs.begin(), vs.end(), name_compare());
// ...
}
【问题讨论】:
-
operator() 不能在没有对象的情况下被调用。它不是静态函数,也不能是静态的。
标签: c++ function-object