map是c++中的關聯容器,提供很好的一對一的關係。
c++中map容器提供乙個鍵值對容器,map與multimap差別僅僅在於multiple允許乙個鍵對應多個值;
增加和刪除節點對迭代器的影響很小;
對於迭代器來說,可以修改實值,而不能修改key;
查詢的時間很少,基本是log(n)
一、map的說明
1 標頭檔案
#include
2 定義
mapmymap;
3 插入資料
(1) mymap["sujw"] = 28;
(2) mymap.insert(map::value_type("chenh",23));
(3) mymap.insert(pair("huanghd",26));
(4) mymap.insert(make_pair("meit",24));
4 查詢資料和修改資料
(1)下標方式:int i = mymap["sujw"];
mymap["sujw"] = 29; //有則賦值,無則新增。
(2)迭代器遍歷:mymap::iterator my_itr;
for (my_itr = mymap.begin(); my_itr != mymap.end(); my_itr++)
}不過注意,鍵本身是不能被修改的,除非刪除。
5 刪除資料
(1) mymap.erase(my_itr);
(2) mymap.erase("sujw");
還是注意,第一種情況在迭代期間是不能被刪除的,道理和foreach時不能刪除元素一樣。
6 迭代資料
for (my_itr=mymap.begin(); my_itr!=mymap.end(); ++my_itr) {}
7 其它方法
mymap.size() 返回元素數目
mymap.empty() 判斷是否為空
mymap.clear() 清空所有元素
可以直接進行賦值和比較:=, >, >=, <, <=, != 等等
C map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...
C map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...
C map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...