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