在类中定义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);