// author: hjjdebug
// date: 2024年 02月 26日 星期一 09:48:28 CST
// description: 将map 按值排序输出
///
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
map<int,char> m; //手工构建一个简单的map
m[0]='c';
m[1]='b';
m[2]='a';
cout<<"key value"<<endl;
for(map<int,char>::iterator it=m.begin();it!=m.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
//map 不能直接排序,需要导出到vector,再按值排序即可.
vector<std::pair<int,char>> v(m.begin(),m.end());
std::sort(v.begin(),v.end(),[](const auto& a,const auto& b){return a.second < b.second;});
cout<<"key value"<<endl;
for(auto it :v)
{
cout<<it.first<<" "<<it.second<<endl;
}
return 0;
}
执行结果:
$ ./test_map
key value
0 c
1 b
2 a
key value
2 a
1 b
0 c