有没有一种方法来排序std :: map数据而不是密钥?现在我的代码将整个地图复制到一个数组中,只是为了做到这一点。std :: map按数据排序?
回答
据我记得,std::map
会给你迭代器,将通过按键排序的项目。只有通过值来遍历已排序项目并仍然使用地图的方法是将整个集合重写为另一个地图,其中键和值颠倒过来。
我发现使用一个单一的矢量和简单的发现的东西就更好。 – Jookia 2010-10-22 00:33:03
如果你这样做,你将失去键值对信息。 – 2013-06-25 18:23:44
我指向Oli Charlesworth的回答http://stackoverflow.com/a/5056797/158371 – 2013-12-02 21:08:49
- 1. 根据数据对排序std :: map(map-> vector-> sort)
- 2. C++ std :: map键排序比较函数?
- 3. std :: map - 如何更改键排序?
- 4. 排序一个std :: map <string,double>
- 5. 在输出和销毁之前按值排序std :: map
- 6. 何时选择关键值数据的std :: map over std :: map?
- 7. 我可以使用std :: partial_sort对std :: map进行排序吗?
- 8. 严格的弱排序和std :: set/std :: map
- 9. 按照Groovy的降序排序Map值
- 10. C++:std :: map数字ID的迭代排序 - 交叉编译
- 11. std :: map
- 12. 取决于输入值对std :: map的排序顺序
- 13. 序列化std :: map C++
- 14. std :: map插入或std :: map查找?
- 15. 在std :: map中插入std :: map
- 16. 按奇数排序
- 17. std :: find_if,std :: binary_function用于按值搜索std :: map
- 18. map <string,object>根据对象成员函数值排序
- 19. 按YEAR排序数据
- 20. 按日期排序数据?
- 21. 按组排序数据
- 22. JQuery Datatables:按数据排序
- 23. 按日期排序数据
- 24. std ::按一元映射排序
- 25. std ::排序获取std :: bad_alloc
- 26. 迭代std :: map <X,std :: vector <Y>>并排序向量
- 27. 无法编译std :: map排序,为什么?
- 28. 的map-reduce排序
- 29. 按数据排序数据框列
- 30. boost :: lambda std :: map
猜猜你需要另一张地图,其中键/值颠倒了吗? – 2010-10-21 23:55:05
还没有找到一个好的解决方案。你不能仅仅交换地图(如同许多人所建议的那样),因为两个值可能是相同的,从而创建一个可能具有较少元素的新地图。实际上**不可能**按值排序地图,因为地图是按键排序的(因此为什么它很快)。即使你尝试创建一个新的已排序的地图,通过像向量一样推入值,你仍然会得到一个按键排序的地图!我在代码中实现的方式是为每个键和值创建排序向量,并在我的应用程序中使用这些向量。为了制作矢量,我先 – user2544830 2013-07-03 02:52:59
[STL map - >按值排序?](http://stackoverflow.com/questions/2699060/stl-map-sort-by-value) – 2017-01-01 14:20:13