C++ STL無序容器底層實現原理(深度剖析)

2020-07-16 10:05:22

在閱讀本節內容之前,讀者需了解雜湊表儲存結構的原理,可猛擊《雜湊表(雜湊表)詳解》一節。

在了解雜湊表儲存結構的基礎上,本節將具體分析 C++ STL 無序容器(雜湊容器)底層的實現原理。

C++ STL 標準庫中,不僅是 unordered_map 容器,所有無序容器的底層實現都採用的是雜湊表儲存結構。更準確地說,是用“鏈地址法”(又稱“開鏈法”)解決資料儲存位置發生衝突的雜湊表,整個儲存結構如圖 1 所示。

C++ STL 無序容器存儲狀態示意圖
圖 1 C++ STL 無序容器儲存狀態示意圖