sort中用lambda函数
sort函数是默认从小到大排列的,如果我们想要改变排序方式就要自己写个cmp函数,如果排列方式比较简单的话我们可以在sort函数中用一个简单的lambda函数。
源码及讲解
对非结构体的数组
前面的[]表示对数的操作方式,如果填个&说明是直接操作数,不用copy,但是这个我们一般用不到,里面就保持空就行了。()里面是参数,就和普通的cmp函数的一样。
int main()
{
int a[] = {1, 2, 3, 4, 5, 6, 7, 8};
sort(a, a + 8, [](int x, int y){
return x > y;
});
for (int i = 0; i < 8; i ++ ) cout << a[i] << ' ';
return 0;
}
对结构体的数组
代码和上面的差不多,就是把()里面的参数类型改成结构体的tag,举个例子
struct students
{
int score;
int age;
}student[5];
这里结构体的tag就是students,那么我们sort的时候就可以这样写sort(student, student + 5, [](students x, students y){ return x.score < y.scoer; });
版权声明:
作者:徐锦桐
链接:https://www.xujintong.com/2023/03/19/96/
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者:徐锦桐
链接:https://www.xujintong.com/2023/03/19/96/
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
THE END