C++结构体数组排序

c++中的结构体排序,最常用到的应该就是对结构体的某一个元素进行排序,其他元素与被排序元素关联

 

比如这样的结构体

typedef struct student{
    int id;
    int math;
    int chinese;
    int english;
}student;

score[3]代表三门成绩,0-math,1-Chinese,2-English

typedef struct student{
    int id;
    int score[3];
}student;

如果要对语数外三门都要排序,这样写的好处是 排序函数cmp可以少写两个

//记录当前是哪一门成绩
int flag;

int cmp(student s1,student s2){
    return s1.score[flag] > s2.score[flag];
}

flag必须是全局变量

这样就可以循环排序了

for(flag=0;flag<=3;flag++){
        sort(stu,stu+N,cmp);

 

posted @ 2020-08-22 15:09  houyz  阅读(2176)  评论(0)    收藏  举报