刷題筆記 雜湊表的三種容器

2022-10-09 06:54:07 字數 520 閱讀 5101

當需要進行查詢速度優化時,就可以使用雜湊表,需要使用額外的空間儲存資料,隨後可以提高查詢效率。

常用的雜湊表資料結構有三種:陣列、集合(set)、對映(map)。

當資料量小時陣列也可以有雜湊功能:

例如統計字串中字母出現次數,可以使用 s[0]~s[25] 的陣列分別儲存字母數量。

單當資料量無法確定或較大時,就需要使用集合(set)了。

集合有三類:

首先考慮使用unordered_set,它具有資料唯一性,無序的特點。

當要求有序時,就可以使用set。它具有資料唯一性,有序的特點。

當要求有序且可重複時,就可以使用multiset,它具有可重複性,有序的特點。

當資料有 key 和 value 對應關係時,就可以使用對映(map)。

對映同樣有三種:

首先是unordered_map,它具有 key 唯一性,無序的特點。

而map,具有 key 唯一性,有序的特點。

multimap,則是具有 key 可重複性,有序的特點。

2021 1 24 刷題(三數之和 雜湊表)

題目描述 給定乙個整數陣列 nums 和乙個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。你可以按任意順序返回答案。示例 1 輸入 nums 2,7,11,15 target ...

常見的三種雜湊結構

查詢乙個元素是否出現在集合中的快速方法,雜湊表 一般會使用如下三種資料結構 c 中對於set提供了三種資料結構 集合底層實現 是否有序 數值是否可以重複 是否能更改數值 查詢效率 增刪效率 std set 紅黑樹有序否否 o logn o logn std multiset 紅黑樹有序是否 o lo...

三種順序容器的比較

insert 按位置插入 o n erase 按位置刪 o n 優點 尾部操作和隨機訪問速度快 缺點 不支援頭插 任意位置刪除和插入複雜度較高 擴容方式 1.倍數開闢二倍的記憶體 2.舊的資料拷貝到新記憶體 3.釋放舊的記憶體 4.指向新的記憶體 push front 頭插 o 1 push bac...