自定义排序顺序/C++
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include<iostream> #include<string> #include<sstream> #include<vector> #include <algorithm> #include <unordered_map> #include <iomanip> #include <math.h> using namespace std; struct myPair{ string name; int grade; int id; }; int main() { int n; int flag; while(cin>>n>>flag){ vector<myPair> vec(n); for(int i = 0; i < n; i++){ cin>>vec[i].name>>vec[i].grade; vec[i].id = i; } if(flag == 0) //降序 sort(vec.begin(), vec.end(),[](myPair &a, myPair &b){ if(a.grade == b.grade) return a.id < b.id; return a.grade > b.grade; }); else sort(vec.begin(), vec.end(),[](myPair &a, myPair &b){ if(a.grade == b.grade) return a.id < b.id; return a.grade < b.grade; }); for(int i = 0; i < n; i++) cout<<vec[i].name<<" "<<vec[i].grade<<endl; } }