Map自带按Key值排序的属性,但很多种情况下我们需要对Map容器进行按Vaule值排序,由于Map没有提供相应的API,我们只有自力更生了。可以利用Pair和自定义排序函数实现,比如我们拿LeetCode上的347题为例,统计一组数中出现次数最多的K个数,代码如下:
//自定义的pair比较函数,此函数需要定义成全局函数,设计成按second值排序
bool cmp(pair<int,int> a,pair<int,int> b){
return a.second>b.second;
}
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums,