認識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來控制檔案輸入單詞以及行號控制。在這裡需要...