在unordered_map中确实没有保证顺序吗?我问这是因为我想指定一个unorderded_map
的订单,以便可以按照指定的顺序(从全局来说,保留对单个元素的散列访问的效率)从begin()
到end()
迭代容器。是否可以指定unordered_map的顺序?
0
A
回答
8
你知道,它有它的名字是有原因的......
要真正给它一个订单,你需要实现自己的哈希,不知怎的,让你的通缉令。现在
,用于解决您的实际问题,你可以从你的std::unordered_map
创建std::map
,甚至以最小的开销用于插入(无份):
#include <iostream>
#include <unordered_map>
#include <map>
#include <functional>
int main()
{
std::unordered_map<int, int> m;
m[5] = 1;
m[4] = 2;
m[3] = 3;
m[2] = 4;
m[1] = 5;
typedef std::reference_wrapper<const int> cref_int;
typedef std::reference_wrapper<int> ref_int;
std::map<cref_int, ref_int> ordered(m.begin(), m.end());
for(auto it=ordered.begin(), ite=ordered.end(); it != ite; ++it){
std::cout << it->second << '\n';
}
}
5
当然不是。如果您需要订单,请使用常规地图。
相关问题
- 1. 是否可以在Visual Studio c#中指定测试的顺序?
- 2. 是否可以按指定的顺序查询帖子?
- 3. 是否可以确定动画顺序
- 4. 选择器上的类的顺序是否重要?如果是,我可以指定顺序吗?
- 5. 是否可以指定大熊猫比化方法级别的顺序?
- 6. 是否可以通过scikit-learn指定在决策树中分割的顺序?
- 7. 是否可以更改事件顺序?
- 8. unordered_map中的销毁顺序
- 9. unordered_map更改的顺序
- 10. TSQL - 是否可以定义排序顺序?
- 11. SimpleInjector是否可以在使用RegisterManyForOpenGeneric/GetAllInstances时指定优先顺序
- 12. 是否可以控制脚本参数绑定的顺序?
- 13. 是否可以确定GHUnit测试方法的执行顺序?
- 14. 指数的顺序是否重要?
- 15. 是否可以在Parallel.For中定义执行顺序?
- 16. 是否正式指定了System.ValueTuple的排序顺序,以及在哪里?
- 17. 是否可以指定TableRow高度?
- 18. 是否可以重新指定req.params?
- 19. TextIO.Write.to(..) - 是否可以指定压缩?
- 20. 是否可以指定iOS应用程序的带宽消耗
- 21. 是否有一个jQuery UI“反可排序”,可以让LI从UL获取,但始终指定顺序?
- 22. 检查给定顺序是否是合法的顺序遍历
- 23. Python PIP:选项指定的顺序是否重要?
- 24. 这些成员是否有未指定的顺序?
- 25. 是否指定了Qt Quick子项的加载顺序?
- 26. 可以mongoimport维护深嵌套键的指定顺序吗?
- 27. Rails序列化哈希 - 是否可以指定数据类型?
- 28. 按顺序指定可选参数
- 29. 以指定顺序显示Tumblr帖子
- 30. 在JqGrid中是否可以按字母顺序排序组?
明显地命名'unordered_map`类型不足以获得消息... – Jon 2011-12-13 23:20:14
调查[Boost.MultiIndex](http://www.boost.org/doc/libs/1_48_0/libs/multi_index/ DOC/index.html中)。我并不熟悉它足以告诉你一个例子,但我很确定你的问题的解决方案是否在任何地方,它就在那里。 – 2011-12-13 23:27:15