一尘不染

如何按值对STL映射排序?

algorithm

如何实现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

如何以这种方式对地图排序?有什么方法可以处理具有排序值的键和值?


阅读 191

收藏
2020-07-28

共1个答案

一尘不染

您可以构建第二张地图,第一张地图的值作为键,第一张地图的键作为值。

仅当所有值都不同时,此方法才有效。如果您无法假设这一点,则需要构建一个多图而不是一个图。

2020-07-28