C++列表排序功能

ran*_*ame 1 c++ sorting list

我不知道如何在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)

Mar*_*ork 7

让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)


Wil*_*use 5

Ranker::compare()是一个成员函数.成员函数与实例相关联.尝试使用静态方法或"免费"功能.