对键进行排序后,按值对多映射进行排序
Sort multimap by values after keys have been sorted
multimap <int, string> mm;
(1, A),
(2, B),
(3, D),
(3, C)
我可以使用多映射键以数字顺序获取一些数据,但在重复的情况下,我希望这些值也按顺序排列。
(1, A),
(2, B),
(3, C),
(3, D)
做这件事最简单的方法是什么?至于地图如何只按键排序,我想我必须制作一套某种类型的地图,但不确定如何进行。
有两种合理的解决方案——选择更有意义的解决方案。
如果您将int
视为键,将string
视为值,但一个键可以映射到多个值——换句话说,如果您将具有相同int
的两对视为同一"组"的一部分,并且您可能希望轻松地遍历特定组,则使用map<int, multiset<string> >
。
如果您将每个int
、string
对视为不同的,并且某些对可能恰好具有相同的int
,则您需要一个multiset<pair<int, string> >
。
在不应存在重复对(int
和string
都相同)的情况下,它们分别变为map<int, set<string> >
和set<pair<int, string> >
。
将您的multimap
放入set<pair<int, string>>
中。
相关文章:
- 使用 Key 对 C++ 中的哈希映射进行排序. 无法排序
- 如何按值对无序哈希映射进行排序
- 从映射<字符串、矢量中对唯一值进行排序<string>>
- 映射C++按值排序和插入元素
- 使用按插入方式排序的参数创建哈希映射
- 为什么内置排序无法对向量映射进行排序
- 根据类成员对同一密钥的多映射元素进行排序
- 以std::字符串作为关键字,按字典顺序对一个无序映射进行排序
- 使用原子指令确保映射访问安全,是否可以使用两个不同的原子对指令进行重新排序
- 通过多个键和存储映射对大量向量进行排序
- 对键进行排序后,按值对多映射进行排序
- 字节不符合记忆映射和对文件进行排序
- 排序标准::映射<字符串,双精度>
- STL映射排序
- 将C++内存排序映射到Java
- 对一个无序映射c++进行排序时数据丢失
- 如何使用模板创建排序映射整数索引
- 存储内部排序映射元素的最快方式
- 在Rcpp中用(西班牙语)重音单词排序映射
- 是否有一个平面的未排序映射/集实现