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);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM