c 中map的基本用法和巢狀用法

2021-06-18 19:39:27 字數 2096 閱讀 9500

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++)    

集合的「巢狀」用法

當實際開發中遇到分集合處理問題,比如學校裡不同班級不同年級裡面學生資訊需要存在集合裡面時,就可以利用這種巢狀思想處理 舉例如下 測試類 public class test system.out.println system.out.println 新for迴圈遍歷更簡單 for arraylist ...

Excel中IF函式的巢狀用法(多條件)

excel中if函式的巢狀用法 多條件 excel中if函式的巢狀用法 多條件 函式格式 if logical test,value if true,value if false 其中 logical test 表示設定的條件,value if true 表示當目標單元格與設定條件相符時返回的函式值...

C 計時器timer的巢狀用法

背景 動態試驗台流程之一.階躍響應試驗需求 簡而言之,就是訊號發生器給試驗物件一階躍訊號,位移感測器檢測試驗物件得到訊號後的位移狀態。為了達到目的,位移感測器讀取資料的頻率要盡可能地快,但是c 的計時器timer在10ms之內就會出現資料丟失,不過這不是我們要考慮的重點,重點是timer的使用 訊號...