如何实现 STL 映射按值排序?
例如,我有一张地图 m
:
map<int, int> m;
m[1] = 10;
m[2] = 5;
m[4] = 6;
m[6] = 1;
我想按 m
的值对该地图进行排序。所以,如果我打印地图,我想得到如下结果:
m[6] = 1
m[2] = 5
m[4] = 6
m[1] = 10
如何以这种方式对地图进行排序?有什么方法可以用排序值处理键和值?
原文由 Charlie Epps 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以构建第二个映射,将第一个映射的值作为键,将第一个映射的键作为值。
这仅在所有值都不同时才有效。如果您不能假设这一点,那么您需要构建多地图而不是地图。