map,即「對映」。map是關聯容器的一種,具體實現採用了紅黑樹的平衡二叉樹的資料結構。它提供一對一(其中第乙個稱為關鍵字key,每個關鍵字只能在map**現一次,第二個稱為該關鍵字的值value)的資料處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。由於是利用了紅黑樹實現,因此可以快速插入key-value記錄和快速刪除記錄。
並且對於迭代器來說,可以修改value,而不能修改key,而且它根據key修改value記錄,因此增加和刪除節點對迭代器的影響很小,除了那個操作節點,對其他的節點都沒有什麼影響。
map是c++ stl的乙個重要成員,使用它時需要包含標頭檔案:
有以下方式,舉例說明如下:#include
; //包含了map和multimap兩種容器的定義
列舉如下:map<
int,string> a;
map<
int,string>
b(a)
;//拷貝佇列a給佇列b
可以有以下幾種方式,列舉如下:a.
insert()
;//插入元素
a.erase()
;//刪除乙個元素
a.find()
;//查詢乙個元素
a.clear()
;//刪除所有元素
a.empty()
;//如果map為空則返回true
a.count()
;//返回指定元素出現的次數
a.size()
;//返回map中元素的個數
a.max_size()
;//返回可以容納的最大元素個數
a.swap()
;//交換兩個map
struct cmp1};
struct cmp2};
struct node1};
struct node2};
map<
int,string>q1;
//採用預設優先順序構造佇列,最小值優先
map<
int,string,cmp1>q2;
//最大值優先
map<
int,string,cmp2>q3;
//最小值優先
map<
int,string,greater<
int>
>q4;
//最大值優先
//注意「>>」會被認為錯誤,因為這是右移運算子,所以這裡用空格號隔開
map<
int,string,less<
int>
>q5;
//最小值優先
mapq6;
//最大值優先
mapq7;
//最小值優先
STL關聯容器之map
map和set一樣,也是一種關聯容器,內部也是使用紅黑樹作為底層的實現結構。但是不同的是,map的鍵值和實值可以是不一樣的。map與set的查詢操作本質上是一樣的,沒有特殊的地方。map使用鍵值排列元素的位置,因而也不允許插入相同鍵值的元素,插入演算法返回pair iterator,bool 分別指...
關聯式容器 map
map的特性是,所有元素都會根據元素的鍵值自動被排序。map的所有元素的型別都是pair,而map的底層就是一顆紅黑樹。它不同set的是,它既有是鍵值 key 排序根據key排序,鍵值保持唯一性,它還具有實值 value pair既pair的first為key,second為value。我們不能修改...
STL 關聯式容器 Set與Map的用法
c 的標準模板庫 簡稱stl 是乙個容器和演算法的類庫。容器往往包含同一型別的資料。set是一種關聯式容器,其特性如下 定義乙個元素為整數的集合a,可以用 seta 基本操作 對集合a中元素的有 插入元素 a.insert 1 刪除元素 如果存在 a.erase 1 判斷元素是否屬於集合 if a....