题解 | 成绩排序
#include <bits/stdc++.h>
#include <vector>
using namespace std;
struct SC {
string name;
int age;
int score;
SC(string name, int age, int score): name(name), age(age), score(score) {}
};
bool compare(SC a,SC b){
if(a.score==b.score){
if(a.name==b.name)return a.age<b.age;
else return a.name<b.name;
}else return a.score<b.score;
}
int main() {
int n;
while (cin >> n) {
vector<SC>a;
for (int i = 0; i < n; i++) {
string name;
int age, score;
cin >> name >> age >> score;
a.push_back(SC(name,age,score));
}
sort(a.begin(),a.end(),compare);
for(auto x:a)cout<<x.name<<" "<<x.age<<' '<<x.score<<endl;
}
}
自定义排序
查看7道真题和解析
