【发布时间】:2010-10-21 23:44:35
【问题描述】:
有没有办法按数据而不是键对 std::map 进行排序?现在我的代码将整个地图复制到一个数组中只是为了做到这一点。
【问题讨论】:
-
猜你需要另一个键/值反转的地图?
-
也没有找到好的解决方案。您不能只是交换地图(正如许多人建议的那样),因为两个值可能相同,从而创建一个可能包含更少元素的新地图。事实上不可能按值对映射进行排序,因为映射是按键排序的(因此它很快)。即使您尝试创建一个已排序的新地图,通过将值像向量一样推入,您仍然会得到一个按键排序的地图!!!我在代码中实现的方式是为每个键和值创建排序向量,并在我的应用程序中使用这些向量。为了制作向量,我首先