在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. 是否可以按指定的顺序查询帖子?
- 2. 是否可以确定动画顺序
- 3. unordered_map更改的顺序
- 4. unordered_map中的销毁顺序
- 5. TSQL - 是否可以定义排序顺序?
- 6. 指数的顺序是否重要?
- 7. 是否正式指定了System.ValueTuple的排序顺序,以及在哪里?
- 8. 是否可以在Parallel.For中定义执行顺序?
- 9. TextIO.Write.to(..) - 是否可以指定压缩?
- 10. 是否可以重新指定req.params?
- 11. Python PIP:选项指定的顺序是否重要?
- 12. 是否指定了Qt Quick子项的加载顺序?
- 13. 可以mongoimport维护深嵌套键的指定顺序吗?
- 14. 以指定顺序显示Tumblr帖子
- 15. 按顺序指定可选参数
- 16. 是否可以指定使用指令的作用域?
- 17. 未指定排序顺序
- 18. 属性是否按指定顺序设置?
- 19. 我可以在oracle中插入数据时指定顺序吗?
- 20. Switch语句中的case顺序是否可以改变性能?
- 21. 是否可以根据子句的顺序选择记录?
- 22. mgo bson marshalling是否可以保证结构组件的顺序?
- 23. LinkedHashMap中的entrySet()是否也可以保证顺序?
- 24. 是否可以在选择后颠倒msyqli_query的顺序?
- 25. boost :: unordered_map维护插入顺序?
- 26. 绑定时,是否可以指定源对象上的路径?
- 27. 是否可以确定指定颜色的十六进制值?
- 28. 有没有方法可以指定结构中可用命令的顺序?
- 29. 是否可以放弃替换字符串顺序?
- 30. 是否可以按顺序遍历k-ary树?
明显地命名'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