EXCEL排序
EXCEL排序
http://www.nowcoder.com/questionTerminal/bf3ec474bb7d410dbb9d5bbcd07a93e5
简单排序
#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;
} 算法题解 文章被收录于专栏
不定期更新一些算法题解,有什么问题可以随时留言~