利用sort對結構體進行排序


我定義了一個學生類型的結構體來演示sort排序對結構體排序的用法

具體用法看代碼

#include<iostream>
#include<string>
#include<algorithm>//sort函數包含的頭文件
using namespace std;
//定義一個學生類型的結構體
typedef struct student
{
    string name;           //學生姓名
    int achievement;     //學生成績
} student;


//這是函數是sort函數的第三個參數
//如果希望升序排序,就是"<",降序排列就是">"號
//如果希望用其他的參數作為排序條件,只需要把相應的條件改一下(如果改成name),這樣結構體就以name作為排序標准
bool comparison(student a,student b){
    return a.achievement<b.achievement;
}



//用來顯示學生信息的函數
void show(student *stu,int n)
{
    for(int i = 0; i < n; i++)
    {
        cout<<"姓名:"<<stu[i].name<<'\t'<<"成績:"<<stu[i].achievement<<endl;
    }
}

int main()
{
    student stu[] = { {"張三",99},{"李四",87},{"王二",100} ,{"麻子",60}};
    cout<<"排序前:"<<endl;
    show(stu,4);
    sort(stu,stu+4,comparison);
    cout<<"排序后:"<<endl;
    show(stu,4);
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM