1. 程式人生 > 其它 >map與unordered_map

map與unordered_map

所有的資料都是成對出現的,每一對中的第一個值稱之為關鍵字(key),每個關鍵字只能在map中出現一次;第二個稱之為該關鍵字的對應值(value)。

 map是一種有序的容器,底層是用紅黑樹實現的,紅黑樹是一種自平衡的二叉樹,可以保障最壞情況的執行時間,它可以做到O(logn)時間完成查詢、插入、刪除元素的操作。
 unordered_map是一種無序的容器,底層是用雜湊表實現的,雜湊表最大的優點是把資料的查詢和儲存時間都大大降低。

  map  unordered_map
優點 1. 有序性,可應用於有順序要求的應用中
2. 可保證最壞情況下的執行時間
雜湊表保證了元素的查詢和儲存速度都非常的快
缺點 空間佔用率高,紅黑樹的每個節點都需要儲存
父節點、子節點和紅黑性質,增加了使用空間
雜湊表的建立比較耗時

適用場景:在有順序要求的場合用map;如果我們只操作一次,為了保證最壞情況下的執行時間,最好也適用map;而如果是需要經常操作,map沒有unordered_map快。因此,除了有順序要求和有單次操作時間要求的場景下用map,其他場景都使用unordered_map。