map常用操作——添入、刪除、查詢、遍歷
阿新 • • 發佈:2018-12-31
/////////////////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;