c++中数组如何排序?
以及写了结构体后,用sort如何只排某一部分的序;假设我的结构体中是s[maxn],a是一组数字,要求从大到小排。...
以及写了结构体后,用sort如何只排某一部分的序;假设我的结构体中是s[maxn],a是一组数字,要求从大到小排。
展开
展开全部
sort在algorithm中默认是升序排列的。
比如int array[5]={1,3,5,4,2},直接sort(array,arrya+5)结果是1,2,3,4,5
int cmp(int a,int b)
{
retrun a>b;
}
sort(array,array+5,cmp);
结果就会变成降序。5,4,3,2,1
如果是结构体的话,比如
struct AA
{
int a,b;
bool ok;
char *ch;
};
按照a的降序来排
int cmp(AA x,AA y)
{
retrun x.a>y.a;
}
然后就会按照关键字a来排序。
比如int array[5]={1,3,5,4,2},直接sort(array,arrya+5)结果是1,2,3,4,5
int cmp(int a,int b)
{
retrun a>b;
}
sort(array,array+5,cmp);
结果就会变成降序。5,4,3,2,1
如果是结构体的话,比如
struct AA
{
int a,b;
bool ok;
char *ch;
};
按照a的降序来排
int cmp(AA x,AA y)
{
retrun x.a>y.a;
}
然后就会按照关键字a来排序。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询