简介
对cmp的理解能力
常规题
code
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct Student{
int idx;
int num;
string name;
Student(int idx_, int num_, string name_) : idx(idx_), num(num_), name(name_){};
bool cmp(const Student& b) {
if(num < b.num) {
return true;
}else if(num == b.num){
return idx < b.idx;
}else{
return false;
}
}
};
bool cmp(const Student& a, const Student& b) {
if(a.num < b.num) {
return true;
}else if(a.num == b.num){
return a.idx < b.idx;
}else{
return false;
}
}
bool cmpC(const Student& a, const Student& b) {
if(a.num > b.num) {
return true;
}else if(a.num == b.num){
return a.idx < b.idx;
}else{
return false;
}
}
int main () {
int n;
int t;
while(cin >> n) {
cin >> t;
int idx = 0;
int num = 0;
string name;
vector<Student> v;
while(n) {
cin >> name >> num;
idx++;
v.push_back({idx, num, name});
n--;
}
if(t != 0) {
sort(v.begin(), v.end(), cmp);
for(auto it:v){
cout << it.name << " " << it.num << endl;
}
}else{
sort(v.begin(), v.end(), cmpC);
for(auto it:v){
cout << it.name << " " << it.num << endl;
}
}
}
}
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》