1. 程式人生 > >map常用操作——添入、刪除、查詢、遍歷

map常用操作——添入、刪除、查詢、遍歷

/////////////////map添入元素
(1)利用pair
map<int,string>ma;
ma.insert(pair<int,int>(2,"LiMing"));
或者ma.insert(make_pair(2,"LiMing"));

(2)利用map的value_type
map<int,string>ma;
ma.insert(map<int,string>::value_type(2,"LiMing"));

(3)利用陣列
map<int,string>ma;
ma[2] = "LiMing";

map<string,int>s;
str = "LiMing";
s[str] = 2;
另外,key值相同的時候無法新增到map中;
如果value對應的key值需要更新的時候,yua需要先獲取value值,然後刪去元素key,value對應元素,再重新插入新key,value對應的元素.
如果key對應的value值需要更新,可以直接賦值或操作,比如s[str] = 3;或者s[str]++;

////////////map刪除元素
移除某個map中某個條目用erase()
該成員方法的定義如下
(1)iterator erase(iterator it); //通過一個條目物件刪除
(2)iterator erase(iterator first, iterator last);//刪除一個範圍 (3)size_type erase(const Key& key); //通過關鍵字刪除 (4)map的清空函式clear()就相當於 enumMap.erase(enumMap.begin(), enumMap.end()); //////////////map查詢元素 (1)用count函式來判定關鍵字是否出現,其缺點是無法定位資料出現位置,由於map的特性,一對一的對映關係,就決定了count函式的返回值只有兩個,要麼是0,要麼是1,出現的情況,當然是返回1了 (2)用find函式來定位資料出現位置
,它返回資料所在位置的迭代器,如果map中沒有要查詢的資料,它返回的迭代器等於end函式返回的迭代器. //////////////map的遍歷 (1)前序遍歷 map<int,string>ma; map<int,string>::iterator na; for (na = ma.begin(); na != ma.end(); na++) cout << na->first << " " << na->second << endl; (2)後序遍歷 map<int,string>ma; map<int,string>::reverse_iterator na; for (na = ma.rbegin(); na != ma.rend(); na++) cout << na->first << " " << na->second << endl;map<int,string>ma;