map與unordered_map
阿新 • • 發佈:2022-12-08
所有的資料都是成對出現的,每一對中的第一個值稱之為關鍵字(key),每個關鍵字只能在map中出現一次;第二個稱之為該關鍵字的對應值(value)。
map是一種有序的容器,底層是用紅黑樹實現的,紅黑樹是一種自平衡的二叉樹,可以保障最壞情況的執行時間,它可以做到O(logn)時間完成查詢、插入、刪除元素的操作。
unordered_map是一種無序的容器,底層是用雜湊表實現的,雜湊表最大的優點是把資料的查詢和儲存時間都大大降低。
map | unordered_map | |
優點 | 1. 有序性,可應用於有順序要求的應用中 2. 可保證最壞情況下的執行時間 |
雜湊表保證了元素的查詢和儲存速度都非常的快 |
缺點 | 空間佔用率高,紅黑樹的每個節點都需要儲存 父節點、子節點和紅黑性質,增加了使用空間 |
雜湊表的建立比較耗時 |
適用場景:在有順序要求的場合用map;如果我們只操作一次,為了保證最壞情況下的執行時間,最好也適用map;而如果是需要經常操作,map沒有unordered_map快。因此,除了有順序要求和有單次操作時間要求的場景下用map,其他場景都使用unordered_map。