C++ map是什麼

2020-07-16 10:05:24
序列容器是管理資料的寶貴工具,但對大多數應用程式而言,序列容器不提供方便的資料存取機制。舉個簡單的範例,當我們用它處理姓名和地址時,在這種場景下,序列容器可能並不能如我們所願。一種典型的方法是通過名稱來尋找地址。如果記錄儲存在序列容器中,就只能通過搜尋得到這些資料。相比而言,map 容器提供了一種更有效的儲存和存取資料的方法。

map 容器是關聯容器的一種。在關聯容器中,物件的位置取決於和它關聯的鍵的值。鍵可以是基本型別,也可以是類型別。字串經常被用來作為鍵,如果想要儲存姓名和地址的記錄,就可以這麼使用。名稱通常可能是一個或多個字串。關聯容器中的物件位置的確定取決於容器中的鍵的型別,而且對於特定容器型別的內部組織方式,不同的 STL 有不同的實現。

map<K,T> 類別範本定義在 map 檔案頭中,它定義了一個儲存 T 型別物件的 map,每個 T 型別的物件都有一個關聯的 K 型別的鍵。容器內物件的位置是通過比較鍵決定的。可以用適當的鍵值從 map 容器中檢索物件。圖 1 展示了一個用名稱作為鍵的 map<K,T> 容器,物件是整數值,用來表示年齡。


圖 1 map<K,T>容器的概念展示圖