C 關聯容器map的用法

2021-06-26 19:13:49 字數 1377 閱讀 3642

這篇部落格部分內容**自

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,關鍵...