在類中定義sort的比較函數
我聲明瞭一個類,類中成員函數調用了二維vector參數:candidate_set,代碼如下:
class StarIdentify
{
public:
StarIdentify(void);
~StarIdentify(void);
double Identify_Basis_Pair();
private: ;
//升序函數
bool LessSort (vector<double> a,vector<double> b);
vector<vector<double>> candidate_set;
};
升序函數定義如下:
bool StarIdentify::LessSort (vector<double> a,vector<double> b)
{ return a[0]<b[0]; }
想在函數Identify_Basis_Pair中調用vector的比較函數
sort(candidate_set.begin(),candidate_set.end(),LessSort);
但編譯會出錯,提示LessSort缺少兩個參數。
解決方式如下
聲明爲靜態成員函數:
class StarIdentify
{
public:
StarIdentify(void);
~StarIdentify(void);
double Identify_Basis_Pair();
private: ;
//升序函數
bool static LessSort (vector<double> a,vector<double> b);
vector<vector<double>> candidate_set;
};
這樣調用就可以了:
sort(candidate_set.begin(),candidate_set.end(),StarIdentify::LessSort);