multimap <int, string> mm;
(1, A),
(2, B),
(3, D),
(3, C)
我能够使用多图键以数字顺序获得一些数据,但在重复的情况下,我希望按顺序排列值。按键排序后按值对multimap进行排序
(1, A),
(2, B),
(3, C),
(3, D)
这样做的最简单方法是什么?看到地图只能按键排序,我想我必须做出一些排序,但不知道如何继续。
multimap <int, string> mm;
(1, A),
(2, B),
(3, D),
(3, C)
我能够使用多图键以数字顺序获得一些数据,但在重复的情况下,我希望按顺序排列值。按键排序后按值对multimap进行排序
(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>>
。
一组对如何? –
你可以定义你自己的'compare'函数并对它们进行排序。 – herohuyongtao