multimap <int, string> mm;
(1, A),
(2, B),
(3, D),
(3, C)
我能够使用多重映射键以数字顺序获取一些数据,但在重复的情况下,我希望这些值也按顺序排列。
(1, A),
(2, B),
(3, C),
(3, D)
最简单的方法是什么?看看地图如何只按键排序,我认为我必须制作一些类型,但不知道如何继续。
答案 0 :(得分:3)
将multimap
放入set<pair<int, string>>
。
答案 1 :(得分:3)
有两种合理的解决方案 - 选择更有意义的解决方案。
如果您将int
视为一个关键字,string
视为一个值,但一个关键字可以映射到多个值 - 换句话说,如果您查看两个关键字对int
作为同一“群组”的一部分,您可能希望轻松地遍历特定群组,然后使用map<int, multiset<string> >
。
如果您将每个int
,string
对视为不同,并且某些对可能发生以使其具有相同的int
,则您需要{ {1}}。
如果不存在重复对(multiset<pair<int, string> >
和int
相同),则它们分别成为string
和map<int, set<string> >
。