成绩排序 (结构体+自定义排序)

来源:互联网 发布:8051单片机 编辑:程序博客网 时间:2024/06/13 12:17
#include<iostream>#include<string>#include<algorithm>using namespace std;struct stu{ // 定义一个结构体    int index;    string name;    int grade;};int cmp0(const stu &a, const stu &b){ // 自定义排序方法    if(a.grade == b.grade)        return a.index < b.index;    else        return a.grade > b.grade;}int cmp1(const stu &a, const stu &b){    if(a.grade == b.grade)        return a.index < b.index;    else        return a.grade < b.grade;}int main(){    int n, cmp;    struct stu arr[50];    cin>>n>>cmp;    for(int i = 0; i < n; i++){        arr[i].index = i;        cin>>arr[i].name>>arr[i].grade; // 输入    }    if(cmp == 0)        sort(arr, arr + n, cmp0);    else        sort(arr, arr + n, cmp1);    for(int i = 0; i < n; i++)        cout<<arr[i].name<<" "<<arr[i].grade<<endl;    return 0;}

0 0