在类中定义sort的比较函数

本文介绍在C++类中如何正确实现和使用自定义的sort比较函数。通过一个具体的例子展示了如何避免编译错误,并成功对二维vector进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

相关帖子

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值