参考了这大佬写的博客。
版权声明:本文为CSDN博主「IIcyZhao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iicy266/article/details/11906189
首先这个问题,就是给一个人和分数排序,如果分数相等就按字典序排序。
关于key的排序是可以直接用的,比如:
#include<map>
#include<string>
#include<iostream>
using namespace std;
struct cmp{
bool operator()(const string& k1, const string& k2) {
return k1.length() < k2.length();
}
};
int main() {//默认是从小到大谱排序的,我们要从大到小排序
map<string, int, cmp> name_score_map;
name_score_map["LiMin"] = 90;
name_score_map["ZiLinMi"] = 79;
name_score_map["BoB"] = 92;
name_score_map.insert(make_pair("Bing",99));
name_score_map.insert(make_pair("Albert",86));
for (map<string, int>::iterator iter = name_score_map.begin();
iter != name_score_map.end();