如何实现STL映射按值排序?
例如,我有一张地图m:
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
如何以这种方式对地图排序?有什么方法可以处理具有排序值的键和值?
您可以构建第二张地图,第一张地图的值作为键,第一张地图的键作为值。
仅当所有值都不同时,此方法才有效。如果您无法假设这一点,则需要构建一个多图而不是一个图。