题解 | 成绩排序
#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; } }
自定义排序