使用stl按元素频率的升序对向量进行排序

问题描述

我正在尝试按频率递增的顺序对整数向量进行排序。我已经声明了一个存储整数计数的全局映射,并已在自定义比较器中使用它,但是我得到了错误的答案。在联机检查(here)时,我发现使用看起来不错的实现对。我在做什么错了?

#include <bits/stdc++.h>
using namespace std;
unordered_map<int,int> m;

bool cm(int a,int b){
   if(m[a]<m[b])
       return true;
   return false;
}
int main(){
       int n;
       cin>>n;
       vector<int> v(n);
       
       for(int i=0;i<n;i++){
           cin>>v[i];
           m[v[i]]++;
       }

       sort(v.begin(),v.end(),cm);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)