STL-sort之结构体排序
sort函数的三个参数
第一个;开始值的地址
第二个;结束值的地址
第三个;排序的函数,若没有则默认为升序排列;记住函数return中大于为降序,小于为升序。
现在说对结构体数组的排序;
#include<iostream>
#include<algorithm>
using namespacestd;
struct node
{
int a;
int b;
double c;
}arr[100];
bool cmp(node x, node y)//要定义成bool形
{
if(x.a !=y.a) return x.a < y.b;
if(x.b != y.b) return x.b > y.b;
return x.c > y.c;
}//先根据a升序排列若相等则根据b来降序排列 否则 按照c降序排列;
sort(arr, arr+90,cmp);//直接加+90而不是作为下标

浙公网安备 33010602011771号