sort函数的第三个参数: 一直没弄清楚的问题

        这次把它搞定,以后sort函数用起来也流畅自然。

1.核心说明

#include <algorithm>
struct range
{
    int start;
    int end;
    range(): {start(0), end(0)}
    range(int a, int b): {start(a), end(b)}
};
 
bool comp(range a, range b)//比较函数的返回值一定是bool型,并且入口参数暂时到现在是两个,暂时没有更高的需要情景,以后可以补充
{
    return a.start>b.start;//想按什么情况来排序,就是这种情况下返回的值是true,但是这里面似乎不能用>=或者<=这样的符号
}
 
 
vector<range> r(10,a);
sort(r.begin(), r.end(), comp);
    
 

        看到没:传进去参数是 a , b 比较的是否返回 true的情况的是 a>b,所以排序之后也是 a[1]>a[2]>a[3]>a[4]....

        这样就是降序排列了

2.使用经验:

(1)你用得又不熟练,干嘛非要弄那些 lambda表达式啊,函数对象什么的,

能不能脚踏实地,就写一个 返回bool类型,2个参数的compare函数,然后就传递这个函数名到sort函数的第三个参数,OK?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值