Cha*_*pps 49 c++ sorting algorithm dictionary stl
如何按值实现STL地图排序?
例如,我有一张地图m:
map<int, int> m;
m[1] = 10;
m[2] = 5;
m[4] = 6;
m[6] = 1;
Run Code Online (Sandbox Code Playgroud)
我想按照m价值对地图进行排序.所以,如果我打印地图,我想得到如下结果:
m[6] = 1
m[2] = 5
m[4] = 6
m[1] = 10
Run Code Online (Sandbox Code Playgroud)
我怎样才能以这种方式对地图进行排序?有什么方法可以用排序值处理键和值吗?
Chr*_*ung 61
将所有键值对转储到set<pair<K, V> >第一个中,其中set使用一个小于函数来构造,该函数仅比较该对的第二个值.这样,即使您的值并非完全不同,您的代码仍然有效.
或者将键值对转储到a中vector<pair<K, V> >,然后使用相同的less-functor对该向量进行排序.
swe*_*egi 31
您可以构建第二个地图,第一个地图的值作为键,第一个地图的键作为值.
仅当所有值都不同时,此方法才有效.如果你不能假设这一点,那么你需要构建一个多图而不是一个地图.
Kon*_*lph 16
我想知道如何按值实现STL映射排序.
根据定义,你不能.映射是一种按键对其元素进行排序的数据结构.
您应该将Boost.Bimap用于此类事情。
| 归档时间: |
|
| 查看次数: |
58501 次 |
| 最近记录: |