在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