map 是 STL 的一個關聯容器,它提供一對一(其中第一個可以稱為關鍵字,每個關鍵字只能在 map 中出現一次,第二個可能稱為該關鍵字的值)的數據處理能力,由於這個特性,它完成有可能在我們處理一對一數據的時候,在編程上提供快速通道。這裡簡單說一下 map 內部數據的組織,map內部自建一顆紅黑樹(一種非嚴格意義上的平衡二叉樹),這顆樹具有對數據自動排序的功能,所以在 map 內部所有的數據都是有序的,後邊我們會見識到有序的好處。
那什麼是一對一的數據映射?比如一個班級中,每個學生的學號跟他的姓名就存在著一一映射的關系,這個模型用 map 可能輕易描述,很明顯學號用 int 描述,姓名用字符串描述。
使用 map 之前,必須包含相應的頭文件,map 屬於 std 命名域的,因此需要通過命名限定:
#include
using std::map; //using namespace std;
1)map 的構造函數
map 共提供了 6 個構造函數,這塊涉及到內存分配器這些東西,略過不講,在下面我們將接觸到一些 map 的構造方法,我們通常用如下方法構造一個 map :
map mapStudent;
2) 數據的插入
在構造 map 容器後,我們就可以往裡面插入數據。這裡講三種插入數據的方法:
a)用 insert 函數插入 pair 數據:
#include
#include