c++中map容器提供乙個鍵值對容器,map與multimap差別僅僅在於multiple允許乙個鍵對應多個值。本文主要總結一下map基本用法和巢狀用法示例。
一、map基本用法
1 標頭檔案
#include
2 定義
mapmy_map; //注意這裡的int和int可以是其他型別
或者是typedef mapmy_map;
my_map my_map;
3 插入資料
(1) my_map[1] = 1;
(2) my_map.insert(map::value_type(2,2));
(3) my_map.insert(pair(3,3));
(4) my_map.insert(make_pair(4,4));
4 查詢資料和修改資料
(1) int i = my_map[1];
my_map[1] = i;
(2) my_map::iterator my_itr;
my_itr.find(2);
int j = my_itr->second;
my_itr->second = j;
注意:a.鍵本身是不能被修改的,除非刪除。
b.不管鍵存不存在,比如my_map[1] = i;,都會執行賦值操作。
5 刪除資料
(1) my_map.erase(my_itr);
(2) my_map.erase(3);
6 遍歷資料
for (my_itr=my_map.begin(); my_itr!=my_map.end(); ++my_itr) {}
7 其它方法
my_map.size() :返回元素數目
my_map.empty():判斷是否為空
my_map.clear() :清空所有元素
二、巢狀用法
1.示例如下:
[cpp]
view plain
copy
map<
int,map<
int,
int> >multimap;
//對於這樣的map巢狀定義,
map, int
> temp;
//定義乙個map變數,對其定義後在插入multimap
temp[9] = 9;
temp[10] = 10;
multimap[10] = temp;
multimap[10][11]=11;
multimap[5][30]=30;
map,map<
int,
int> >::iterator multitr;
// 以下是如何遍歷本multimap
map,int
>::iterator intertr;
for(multitr=multimap.begin();multitr!=multimap.end();multitr++)
2.也可以這樣:
[cpp]
view plain
copy
map<
int,map<
int,
int>* >multimap;
map, int
>* temp =
newmap<
int,
int>;
multimap[10]=temp;
這樣動態new記憶體,就要記得delete,否則會有記憶體洩露,delete如下:
[cpp]
view plain
copy
map<
int,
int>* temp1;
for(multitr=multimap.begin();multitr!=multimap.end();multitr++)
map的巢狀特別注意:
1,對於 std::map(std::string, std::map) 這個型別的賦值和插入方法:
std::mapneimap;
std::map> waimap;
std::string group = "groupp";
waimap[group] = neimap;
std::string key = "keyy";
std::string value = "valuee";
waimap[group].insert(std::make_pair(key.c_str(), value.c_str()));
注意必須用:waimap[group].insert(std::make_pair(key.c_str(), value.c_str())); 給內層的map賦值(make_pair中的std::string要寫作char型別),否則,在有些編譯器下是編譯不過的。
C 使用 C 中map的基本操作和用法
在閱讀ssd 中發現作者使用了c 中的map方法,因此搜尋該關聯式容器的使用方法,在這裡一併總結。map是stl的乙個容器,它提供一對一的hash。map以模板 泛型 方式實現,可以儲存任意型別的變數,包括使用者自定義的資料型態。map主要用於資料一對一對映 one to one 的情況,map內部...
C 使用 C 中map的基本操作和用法
在閱讀ssd 中發現作者使用了c 中的map方法,因此搜尋該關聯式容器的使用方法,在這裡一併總結。map是stl的乙個容器,它提供一對一的hash。map以模板 泛型 方式實現,可以儲存任意型別的變數,包括使用者自定義的資料型態。map主要用於資料一對一對映 one to one 的情況,map內部...
C 使用 C 中map的基本操作和用法
在閱讀ssd 中發現作者使用了c 中的map方法,因此搜尋該關聯式容器的使用方法,在這裡一併總結。map是stl的乙個容器,它提供一對一的hash。map以模板 泛型 方式實現,可以儲存任意型別的變數,包括使用者自定義的資料型態。map主要用於資料一對一對映 one to one 的情況,map內部...