- 相關推薦
c語言中map的基本用法
C++中map容器提供一個鍵值對容器,map與multimap差別僅僅在于multiple允許一個鍵對應多個值。下面小編給大家整理了c語言中map的基本用法,供大家參閱。
一、map基本用法
1. 頭文件
復制代碼 代碼如下:
#include
2. 定義
復制代碼 代碼如下:
map my_Map; //注意這里的int和int可以是其他類型
或者是
復制代碼 代碼如下:
typedef map MY_MAP;
MY_MAP my_Map;
3. 插入數據
(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. 查找數據和修改數據
(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.示例如下:
復制代碼 代碼如下:
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.也可以這樣:
復制代碼 代碼如下:
map* >multiMap;
map* temp = new map;
multiMap[10]=temp;
這樣動態new內存,就要記得,否則會有內存泄露,如下:
復制代碼 代碼如下:
map* temp1;
for(multitr=multiMap.begin();multitr!=multiMap.end();multitr++)
{
temp1 = multitr ->second;
temp1;
temp1 = NULL;
}
擴展:C語言優缺點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以像匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。
2. 運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C語言的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
5.C語法限制
C語法限制不太嚴格,程序設計自由度大 雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度
6. C語言允許直接訪問物理地址,可以直接對硬件進行操作
由于C語言允許直接訪問物理地址,可以直接對硬件進行
c語言的基本特性
1、高級語言:
它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。
C 語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
3、代碼級別的跨平臺:
由于標準的存在,使得幾乎同樣的C代碼可用于多種操作系統,如Windows、DOS、UNIX等等;也適用于多種機型。C語言對編寫需要進行硬件操作的場合,優于其它高級語言。
4、使用指針:
可以直接進行靠近硬件的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由于這些改進增加語言的復雜度,也為另一部分所詬病。
Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低于C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
【c語言中map的基本用法】相關文章:
c語言中map的用法簡介09-20
C語言中時間的基本用法10-03
c語言中bit的用法11-01
C語言中assert用法09-22
C語言中的assert用法10-10
c語言中default的用法05-26
c語言中多個if的用法11-12
c語言中getch的用法06-01
c語言中邏輯或的用法05-23