簡體   English   中英

為什么C ++標准庫不包含哈希表實現?

[英]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_ptrstd::shared_ptr要好得多)。

如果我記得,最初在C ++ 98中引入散列表的原因只是缺乏C ++標准委員會的時間。 他們基本上有一個截止日期,以便運送東西,哈希表沒有成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM