在类中,我试图通过传递同一类的方法来对向量进行排序。但它在编译时会给出错误。有谁能说出问题出在哪里吗?谢谢!
它会显示以下错误: bool (Sorter::)(D&,D&)' does not matchbool(Sorter::*)(D&;,D&;)‘
类型的参数我还尝试使用sortBynumber(D const& d1,D const& d2)
#include<vector> #include<stdio.h> #include<iostream> #include<algorithm> class D { public: int getNumber(); D(int val); ~D(){}; private: int num; }; D::D(int val){ num = val; }; int D::getNumber(){ return num; }; class Sorter { public: void doSorting(); bool sortByNumber(D& d1,D& d2); std::vector<D> vec_D; Sorter(); ~Sorter(){}; private: int num; }; Sorter::Sorter(){ int i; for ( i = 0; i < 10; i++){ vec_D.push_back(D(i)); } }; bool Sorter::sortByNumber(D& d1,D& d2){ return d1.getNumber() < d2.getNumber(); }; void Sorter::doSorting(){ std::sort(vec_D.begin(),vec_D.end(),this->sortByNumber); }; int main(){ Sorter s; s.doSorting(); std::cout << " Press RETURN to continue..."; std::cin.get(); return 0; }