這篇部落格部分內容**自
c++中的關聯容器支援通過鍵來高效的查詢和讀取元素。這裡我們介紹一下c++的關聯容器之一:map
在介紹map之前我覺得有必要先介紹一下一種簡單的標準庫型別--pair
pair型別提供的操作:
pairp1;
pairp1(v1,v2);
make_pair(v1,v2);
p.first
p.second
還有兩個pair型別物件的比較
下面開始介紹map的內容:
1 標頭檔案
#include
2 定義
mapmy_map;
或者是typedef mapmy_map;
my_map my_map;
3 插入資料
(1) my_map["a"] = 1;
(2) my_map.insert(map::value_type("b",2));
(3) my_map.insert(pair("c",3));
(4) my_map.insert(make_pair("d",4));
4 查詢資料和修改資料
(1) int i = my_map["a"];
my_map["a"] = i;
(2) my_map::iterator my_itr;
my_itr.find("b");
int j = my_itr->second;
my_itr->second = j;
不過注意,鍵本身是不能被修改的,除非刪除。
(3)map還提供乙個count函式,用來檢查map物件中某個鍵是否存在
map.count(key) key存在返回1,否則返回0
5 刪除資料
(1) my_map.erase(my_itr);
(2) my_map.erase("c");
注意,第一種情況在迭代期間是不能被刪除的,道理和foreach時不能刪除元素一樣。
6 迭代資料
for (my_itr=my_map.begin(); my_itr!=my_map.end(); ++my_itr) {}
7 其它方法
my_map.size() 返回元素數目
my_map.empty() 判斷是否為空
my_map.clear() 清空所有元素
可以直接進行賦值和比較:=, >, >=, <, <=, != 等等
關聯容器map用法例項
三種插入方式 2.1.1用insert方法插入 pair 物件 enummap.insert pair 1,one 2.1.2 用insert方法插入 value type 物件 enummap.insert map value type 1,one 2.1.3 用陣列方式插入值 enummap 1...
C 關聯容器之map
認識map map型別通常被稱為關聯陣列,關聯陣列與 正常 陣列類似,不同之處在於其下標不必是整數。map是標準的關聯式容器,乙個map是乙個鍵值對序列,即 key,value 對。它提供基於key的快速檢索能力。map中key值是唯一的。集合中的元素按一定的順序排列。元素插入過程是按排序規則插入,...
c 之關聯容器map
map是關鍵字 值對的集合,元素是一些關鍵字 值對 字典 按關鍵字有序儲存元素 標頭檔案 include建立map mapm 建立乙個map,關鍵字為tk型別,值為tv型別 mapm1 建立乙個map,關鍵字為tk型別,值為tv型別,新增元素key value新增元素 mapm 建立乙個map,關鍵...