我不知道如何在C++中正确实现列表的排序.我收到了构建错误:
'Ranker :: compare':函数调用缺少参数列表; 用于
'&Ranker::compare'创建指向成员的指针
如何正确实现列表的排序功能?
Ranker.h:
list<Competitor*> sorted;
Run Code Online (Sandbox Code Playgroud)
Ranker.cpp:
bool Ranker::compare(Competitor* first, Competitor* second) {
if (first->getTime() < second->getTime())
return true;
else
return false;
}
int Ranker::addList(Competitor* starter) {
sorted.push_back(starter);
sorted.sort(compare);
}
Run Code Online (Sandbox Code Playgroud)
让rankor成为一个简单的函子:
struct Compare
{
bool operator()(Competitor* first, Competitor* second) const {
return first->getTime() < second->getTime();
}
};
// STUFF
sorted.sort(Compare());
Run Code Online (Sandbox Code Playgroud)
或者如果你有C++ 11
sorted.sort([](Competitor* first, Competitor* second) {
return first->getTime() < second->getTime();
});
Run Code Online (Sandbox Code Playgroud)