C 關聯容器之map

2021-09-11 07:11:16 字數 1210 閱讀 5144

認識map

map型別通常被稱為關聯陣列,關聯陣列與「正常」陣列類似,不同之處在於其下標不必是整數。

①map是標準的關聯式容器,乙個map是乙個鍵值對序列,即(key,value)對。它提供基於key的快速檢索能力。

②map中key值是唯一的。集合中的元素按一定的順序排列。元素插入過程是按排序規則插入,所以不能指定插入位置。

③map的具體實現採用紅黑樹變體的平衡二叉樹的資料結構。在插入操作和刪除操作上比vector快。

④map可以直接訪問key所對應的value,支援操作符,如map[key]=value。

⑤multimap與map的區別:map支援唯一鍵值,每個鍵只能出現一次;而multimap中相同鍵可以出現多次。multimap不支援操作符。

經典案例:單詞計數程式

從鍵盤獲取一系列單詞,統計每個單詞出現的次數

#include #include #include #include using namespace std;

int main()

//寫法1

//for(map::const_iterator it = word_count.begin(); it != word_count.end(); it++)

// //寫法2

for(map::const_iterator it = word_count.begin(); it != word_count.end(); it++)

//寫法3,採用c++11新標準語法,前提是你的編譯器支援該語法

//for(const auto &w : word_count)

// //此句作用相當於阻塞控制台視窗

//system就是從程式中呼叫系統命令,該命令存在標頭檔案stdlib.h中,可新增標頭檔案cstdlib

system("pause");

return 0;

}

執行程式

鍵入單詞以enter鍵進行分割,最後按ctrl+z結束輸入。

注意輸出時的單詞順序,其實map預設是按公升序排序,如果想要變為降序排列,改為以下方式:

map>

c 之關聯容器map

map是關鍵字 值對的集合,元素是一些關鍵字 值對 字典 按關鍵字有序儲存元素 標頭檔案 include建立map mapm 建立乙個map,關鍵字為tk型別,值為tv型別 mapm1 建立乙個map,關鍵字為tk型別,值為tv型別,新增元素key value新增元素 mapm 建立乙個map,關鍵...

c 之關聯容器 map

關聯容器支援高效的關鍵字查詢和訪問,兩個主要的關聯容器 map和set。map中的元素是 關鍵字 值 對 key value 關鍵字起索引作用。set中只包含乙個關鍵字。預設set是 無重複元素 有序儲存的。除非加上unordered multi修飾。map定義及初始化 mapword count ...

C primer 關聯容器之map

先來一道程式看看吧。程式如下如題目要求是定義乙個map,將單詞與乙個行號的list關聯,list中儲存單詞出現的行號 現在繼續 定義乙個map,將單詞與乙個行號的list關聯,list中儲存單詞出現的行號 其中本來答案中需要in檔案流繫結,我卻用了兩個cin來控制檔案輸入單詞以及行號控制。在這裡需要...