我正在尋找一個容器,它提供了類似std :: map的接口,但是維護了插入元素的順序。由於地圖中的元素不會太多,因此查找性能不是一個大問題。 boost::unordered_map會在這種情況下工作嗎?即它保持插入的順序。我是新來的圖書館,因此想知道「無序」究竟意味着什麼?boost :: unordered_map維護插入順序?
4
A
回答
9
unordered_map不保留插入順序。在這種情況下無序意味着元素的可觀察順序(即當你枚舉它們時)是未指定的和任意的。事實上,我認爲unordered_map中的元素順序可能會在地圖的生命週期中發生變化,這是由於重新調整地圖大小(雖然這取決於實現)
6
當我最後一次需要這個時候,我用了std::vector< std::pair<const Key, Value> >
。我並不需要很多接口,所以我沒有打擾過,但是看起來應該相當簡單地在這個附近拍一個類似地圖的界面。
此外,請務必查看this question的答案。
17
閱讀關於Boost.Multiindex。它使您有機會創建一個容器,該容器既可以通過鍵(如std :: map)訪問數據,也可以按順序訪問數據(如std :: list)。
這是一個example。
相關問題
- 1. Java JSON對象插入順序維護
- 2. linkedhashmap如何維護插入順序
- 3. 維護插入順序的Java集合
- 4. Ruby維護哈希插入順序
- 5. boost :: bind並插入一個boost :: unordered_map
- 6. 在std :: multiset中維護插入順序相同的元素
- 7. 插入unordered_map
- 8. 插入unordered_map的unordered_map?
- 9. 我們怎樣才能SmartGWT的維護插入順序ListGrid
- 10. 是否有一個IdentityHashMap實現來維護插入順序?
- 11. 如何維護插入共享首選項的順序?
- 12. Java Collections中的插入順序維護需求
- 13. Python在列表維護順序中插入項目
- 14. Java維護插入順序和重複值
- 15. 結構,允許重複,維護插入順序,並允許刪除和插入
- 16. 維護jQuery執行順序
- 17. 休眠:如何維持插入順序
- 18. BCP維護插入訂單
- 19. 合併,排序,維護行順序
- 20. 使用Boost unordered_map
- 21. unordered_map插入()錯誤
- 22. unordered_map插入失敗
- 23. unordered_map中的銷燬順序
- 24. unordered_map更改的順序
- 25. eclipse插件沒有維護Maven多模塊的順序
- 26. 按維護順序快速解析json
- 27. JAXB jar維護元素順序?
- 28. 維護x軸上的標籤順序
- 29. 維護MongoDB集合的順序
- 30. 如何維護sql查詢的順序
爲什麼不試試? :)實驗並沒有那麼糟糕。 – LiraNuna 2009-10-22 08:39:47
你想要做什麼?檢查我對這個問題的答案,看看它是否適用:http://stackoverflow.com/questions/1570349/which-stl-container – 2009-10-22 08:42:14
@LiraNuna:因爲這只是告訴你當前的實施行爲,而不是這是否這具體的行爲是必需的,可以依靠嗎? – sbi 2009-10-22 08:49:41