[英]Why does the Standard Library for C++ not contain hash table implementations?
我正在閱讀我的教科書Data Structures and Algorithms: By Mark Allen Weiss
,它說標准庫不包含集合或映射的哈希表實現,而是編譯器可以提供具有相同成員函數的hash_set和hash_map和地圖類。 為什么不在標准庫中包含哈希實現? 這本書於2006年出版,自從將這些實現添加到標准庫以來,是否有任何C ++版本?
您正在尋找的是名為std::unordered_set/map
。 這些是C ++ 11的一部分, C ++ 11是C ++標准的下一個版本(將在幾個月后完成)。 它們也在2005年的技術報告1中提供,這是第一個標准和下一個標准庫之間的C ++標准庫的附加列表。 在TR1中,它們位於std::tr1
命名空間中。
Boost實際上提供了TR1的實現 (盡管你不應該使用std::tr1::shared_ptr
版本,因為C ++ 11中的常規boost::shared_ptr
和std::shared_ptr
要好得多)。
如果我記得,最初在C ++ 98中引入散列表的原因只是缺乏C ++標准委員會的時間。 他們基本上有一個截止日期,以便運送東西,哈希表沒有成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.