标准库stable_sort()
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
struct Item {
string name;
int num;
};
int compare_item_0(Item item1, Item item2) {
return item1.num < item2.num;
}
int compare_item_1(Item item1, Item item2) {
return item1.num > item2.num;
}
int main() {
vector<Item> items;
int num, flag;
while (cin >> num >> flag) {
items.clear();
for (int i = 0; i != num; i++) {
Item item;
cin >> item.name >> item.num;
items.push_back(item);
}
if (flag == 1) {
stable_sort(items.begin(), items.end(), compare_item_0);
} else if (flag == 0) {
stable_sort(items.begin(), items.end(), compare_item_1);
}
for (int i = 0; i != items.size(); i++) {
cout << items[i].name << " " << items[i].num << endl;
}
}
return 0;
} 
京公网安备 11010502036488号