简单排序
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct Student{
string id, name;
int grade;
Student(string id, string name, int grade)
: id(id), name(name), grade(grade){}
};
int main(){
int N, C;
string id, name;
int grade;
while(cin >> N >> C){
vector<Student> students;
for(int i = 0; i < N; i ++){
cin >> id >> name >> grade;
students.emplace_back(id, name, grade);
}
// 按条件排序
sort(students.begin(), students.end(), [=](Student& stu1, Student& stu2){
if(C == 1) return stu1.id < stu2.id;
else if(C == 2) return stu1.name == stu2.name ? stu1.id < stu2.id : stu1.name < stu2.name;
else return stu1.grade == stu2.grade ? stu1.id < stu2.id : stu1.grade < stu2.grade;
});
cout << "Case:" << endl;
for(Student stu : students)
cout << stu.id + " " + stu.name + " " + to_string(stu.grade) << endl;
}
return 0;
} 
京公网安备 11010502036488号