- 相關(guān)推薦
c語言中map的基本用法
C++中map容器提供一個鍵值對容器,map與multimap差別僅僅在于multiple允許一個鍵對應(yīng)多個值。下面小編給大家整理了c語言中map的基本用法,供大家參閱。
一、map基本用法
1. 頭文件
復(fù)制代碼 代碼如下:
#include
2. 定義
復(fù)制代碼 代碼如下:
map my_Map; //注意這里的int和int可以是其他類型
或者是
復(fù)制代碼 代碼如下:
typedef map MY_MAP;
MY_MAP my_Map;
3. 插入數(shù)據(jù)
(1) my_Map[1] = 1;
(2) my_Map.(map::value_type(2,2));
(3) my_Map.(pair(3,3));
(4) my_Map.(make_pair(4,4));
4. 查找數(shù)據(jù)和修改數(shù)據(jù)
(1)
復(fù)制代碼 代碼如下:
int i = my_Map[1];
my_Map[1] = i;
(2)
復(fù)制代碼 代碼如下:
MY_MAP::iterator my_Itr;
my_Itr.find(2);
int j = my_Itr->second;
my_Itr->second = j;
注意:
A.鍵本身是不能被修改的,除非刪除。
B.不管鍵存不存在,比如my_Map[1] = i;,都會執(zhí)行賦值操作。
5. 刪除數(shù)據(jù)
(1) my_Map.erase(my_Itr);
(2) my_Map.erase(3);
6. 遍歷數(shù)據(jù)
復(fù)制代碼 代碼如下:
for(my_Itr=my_Map.begin();my_Itr!=my_Map.end();++my_Itr){}
7. 其它方法
my_Map.size() :返回元素數(shù)目
my_Map.empty():判斷是否為空
my_Map.clear() :清空所有元素
二、嵌套用法
1.示例如下:
復(fù)制代碼 代碼如下:
map >multiMap; //對于這樣的map嵌套定義,
map temp; //定義一個map變量,對其定義后在插入multiMap
temp[9] = 9;
temp[10] = 10;
multiMap[10] = temp;
multiMap[10][11]=11;
multiMap[5][30]=30;
map >::iterator multitr; // 以下是如何遍歷本multiMap
map::iterator intertr;
for(multitr=multiMap.begin();multitr!=multiMap.end();multitr++)
{
for(intertr= multitr ->second.begin(); intertr != multitr ->second.end(); intertr ++)
cout<< multitr ->first<<" "
}
2.也可以這樣:
復(fù)制代碼 代碼如下:
map* >multiMap;
map* temp = new map;
multiMap[10]=temp;
這樣動態(tài)new內(nèi)存,就要記得,否則會有內(nèi)存泄露,如下:
復(fù)制代碼 代碼如下:
map* temp1;
for(multitr=multiMap.begin();multitr!=multiMap.end();multitr++)
{
temp1 = multitr ->second;
temp1;
temp1 = NULL;
}
擴展:C語言優(yōu)缺點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫形式自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。 C 語言可以像匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計算機最基本的工作單元。
2. 運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。
3. 數(shù)據(jù)結(jié)構(gòu)豐富
C語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。
4. C是結(jié)構(gòu)式語言
結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦,便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
5.C語法限制
C語法限制不太嚴(yán)格,程序設(shè)計自由度大 雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度
6. C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作
由于C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行
c語言的基本特性
1、高級語言:
它是把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來的工作單元。
2、結(jié)構(gòu)式語言:
結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂、維護(hù)以及調(diào)試。
C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
3、代碼級別的跨平臺:
由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機型。C語言對編寫需要進(jìn)行硬件操作的場合,優(yōu)于其它高級語言。
4、使用指針:
可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語言的復(fù)雜度,也為另一部分所詬病。
Java則吸取了C++的教訓(xùn),取消了指針操作,也取消了C++改進(jìn)中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低于C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。
【c語言中map的基本用法】相關(guān)文章:
c語言中time函數(shù)的用法08-27
C語言中volatile的含義08-14
C 語言中宏的使用08-02
C語言中的鏈接編寫05-26
html語言中URL的用法06-20
php語言中session用法07-02
C語言中指針的概念03-16
c語言中邏輯或怎么用07-05
C語言中內(nèi)存分配問題09-13