思路
这个和上面的成绩排序其实一样,但是要简单很多,这个就采用重载运算符的做法了。重载运算符可以参考一下我的博客 https://blog.csdn.net/sinat_41895958/article/details/113369584
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Student{
public:
int code;
int grade;
public:
Student(int code, int grade):code(code),grade(grade){}
bool operator <(const Student& stu)const {
return stu.grade == grade ? code < stu.code : grade < stu.grade;
}
};
int main(){
int n;
while(cin >> n){
vector<Student> students;
for(int i = 0; i < n; i ++){
int code; int grade;
cin >> code >> grade;
students.emplace_back(code, grade);
}
sort(students.begin(), students.end());
for(Student stu : students){
cout << stu.code << " " << stu.grade << endl;
}
}
return 0;
} 
京公网安备 11010502036488号