最近在写题目的时候涉及到一些需要对map的value进行排序的操作
但是C++的std::map或std::multimap可以对key进行排序,但是不能对value进行排序
我们可以把map存在vector里进行排序
vector中存放pair<int,int>,第一个int为元素数值,第二个int为元素出现的频率
下面是高频优先的排序方式示例:
unordered_map<int,int> map;
bool static cmp(const pair<int,int>& a, const pair<int,int>& b)
{
return a.second>b.second;
}
vector<pair<int,int>> vec(map.begin(),map.end());
sort(vec.begin(),vec.end(),cmp);