1.结构体
struct stu{
int id;
string name;
float grade;
};
2.结构体数组的排序
sort算法如果是非自定义类型可以缺省,默认升序排序,但自定义类型必须自己重写比较规则,因为系统没法知道你怎么比较
sort(首元素地址,尾元素下一位地址,排序规则);
#pragma once
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct stu{
int id;
string name;
float grade;
};
stu s[100];
int n;
bool cmp(stu left,stu right){
//按学号升序排序,学号相等的按成绩比
if(left.id==right.id){
return left.grade>right.grade;
}
else
return left.id<right.id;
}
void text1_01(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].id>>s[i].name>>s[i].grade;
}
sort(s+1,s+n+1,cmp);
//没有缺省的默认升序排序,因为自定义类型需要重写比较规则
for(int i=1;i<=n;i++){
cout<<s[i].id<<" "<<s[i].name<<" "<<s[i].grade<<endl;
}
}