这次把它搞定,以后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?