代码如下:
//初始化一个mp unordered_map<string, int> mp = { {"zhangsan", 3}, {"zhaoliu", 5}, {"wangwu", 5}, {"lisi", 4} }; vector<pair<string, int>> arr; //把map里的key-value对放入vector中 for(auto it : mp){ arr.emplace_back(it); } // 重写compare函数,如果value值相同,则按照key值排序 sort(arr.begin(), arr.end(), [](auto p1, auto p2){return p1.second == p2.second ? p1.first < p2.first : p1.second < p2.second; }); for(auto [key, value]: arr) cout << key << ' ' << value << endl;