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

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

1.核心说明

#include 
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 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?

你可能感兴趣的:(c++)