我正在閱讀我的教科書Data Structures and Algorithms: By Mark Allen Weiss
,它說標準庫不包含集合或映射的哈希表實現,而是編譯器可以爲集合和映射類的相同成員函數提供hash_set和hash_map。爲什麼不把hash實現包含在標準庫中呢?這本書是在2006年發佈的,自從將這些實現添加到標準庫之後,是否對C++進行了修改?爲什麼C++標準庫不包含哈希表實現?
回答
你在找什麼叫std::unordered_set/map
。這些是C++11的一部分,C++標準的下一個版本(將在幾個月內完成)。它們也在2005年的技術報告1中提供,它是第一個標準與下一個標準庫之間C++標準庫的補充列表。在TR1中,它們位於std::tr1
名稱空間中。
升壓實際船舶的implementation of TR1(雖然你不應該使用std::tr1::shared_ptr
版本,在常規boost::shared_ptr
和std::shared_ptr
C++ 11的好得多)。
如果我回想起來,哈希表最初並沒有在C++ 98中引入的原因簡直就是C++標準委員會缺乏時間。他們基本上有一個截止日期爲了運送的東西,哈希表沒有做到這一點。
這些也是自2005年以來作爲TR1庫擴展提供的。 – Blastfurnace
那真是一種不幸。但是,謝謝!來自維基百科:「在C++標準庫中包含散列表(無序關聯容器)是最經常發生的請求之一。」 – tehman
@Blastfurnace:注意。謝謝。 –
- 1. 爲什麼GNU C Library稱爲C標準庫的實現?
- 2. 爲什麼鹽被包含在用C crypt函數哈希
- 3. 哈希表實現
- 4. 包含C++標準庫
- 5. 執行包含哈希表
- 6. 爲什麼包含標準頭文件?
- 7. C++中的哈希表實現
- 8. 使用矢量C++實現哈希表
- 9. 在C中的哈希表實現?
- 10. 爲什麼Java標準庫不實現toString方法?
- 11. 持久哈希表實現
- 12. 實現哈希表的
- 13. Java哈希表實現
- 14. 實現在哈希表
- 15. Java哈希表實現
- 16. 爲什麼使用數組來實現「列表」而不是哈希表?
- 17. SystemJS實現什麼標準?
- 18. 在包中包含一個「哈希表」
- 19. 什麼命名結構包含哈希表和向量?
- 20. 爲什麼我的哈希集包含重複項?
- 21. 爲什麼Rail2的to_json包含返回空哈希的選項?
- 22. 爲什麼下載的文件名包含哈希
- 23. 哈希碼實現
- 24. 每個C++實現中都包含C++標準庫函數和類嗎?
- 25. 爲什麼度量標準實現需要性能度量標準庫?
- 26. file_get_contents包含哈希信息
- 27. 匹配哈希包含
- 28. 什麼是標準ada包含路徑
- 29. 爲什麼我的哈希不是undef?
- 30. 哈希不包含'嘗試'方法
我知道馬克個人很棒:D,很可能他們沒有被包含在圖書館裏,因爲他們只會被內部使用。編譯器也更容易優化它們。 –
你是什麼意思只能在內部使用?這真的很棒,你從哪裏知道他的? – tehman
他是我參加學校的首席人員之一。而內部使用,我的意思是它們可能是針對特定於代碼的庫進行優化的尼古拉斯可能有一個觀點。 –