C++11——散列表(哈希表)


散列表類型 有無關系值 接受相同鍵值
std::unordered_set
std::unordered_multiset
std::unordered_map
std::unordered_multimap

std::mapstd::unordered_map區別:

std::map std::unordered_map
頭文件 #include <map> #include <unordered_map>
內部實現 map內部實現了一個紅黑樹,紅黑樹具有自動排序的功能,因此map內部的所有元素都是有序的,紅黑樹的每一個節點都代表着map的一個元素。 unordered_map內部實現了一個哈希表,其元素的排列順序是無序的,根據關鍵碼值而進行直接訪問的數據結構。
優點 有序性,在很多應用中都會簡化很多的操作,效率非常的高 查找速度非常的快
缺點 空間占用率高,因為紅黑樹每一個節點都需要額外保存父節點、孩子節點和紅/黑性質,使得每一個節點都占用大量的空間 哈希表的建立比較耗費時間
適用 有順序要求的問題 查找問題

unordered_map的占用的內存比map高, 但unordered_map執行效率要比map高很多 。

unordered_map的用法和map是一樣的,提供了 insertsizecount等操作,並且里面的元素也是以pair類型來存儲的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM