【问题标题】:std::map sort by data?std::map 按数据排序?
【发布时间】:2010-10-21 23:44:35
【问题描述】:

有没有办法按数据而不是键对 std::map 进行排序?现在我的代码将整个地图复制到一个数组中只是为了做到这一点。

【问题讨论】:

  • 猜你需要另一个键/值反转的地图?
  • 也没有找到好的解决方案。您不能只是交换地图(正如许多人建议的那样),因为两个值可能相同,从而创建一个可能包含更少元素的新地图。事实上不可能按值对映射进行排序,因为映射是按键排序的(因此它很快)。即使您尝试创建一个已排序的新地图,通过将值像向量一样推入,您仍然会得到一个按键排序的地图!!!我在代码中实现的方式是为每个键和值创建排序向量,并在我的应用程序中使用这些向量。为了制作向量,我首先
  • STL map--> sort by value?的可能重复

标签: c++ sorting stdmap


【解决方案1】:

据我所知,std::map 将为您提供迭代器,该迭代器将遍历按键排序的项目。按值遍历排序项并仍然使用映射的唯一方法是将整个集合重写到另一个映射,键和值颠倒。

【讨论】:

  • 我发现使用单个向量并简单地查找内容会更好。
  • 如果这样做会丢失键值对信息。
  • 我指向 Oli Charlesworth 在stackoverflow.com/a/5056797/158371的回答
猜你喜欢
  • 2019-05-03
  • 2013-06-27
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 2014-04-30
  • 1970-01-01
相关资源
最近更新 更多