C map容器 注意事項

2021-07-24 22:20:03 字數 1150 閱讀 7584

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。也就是說,...