c 之關聯容器 map

2021-10-06 22:48:50 字數 1465 閱讀 7705

關聯容器支援高效的關鍵字查詢和訪問,兩個主要的關聯容器:mapset

map中的元素是 關鍵字-值 對(key-value),關鍵字起索引作用。

set中只包含乙個關鍵字。預設set是 無重複元素+有序儲存的。除非加上unordered、multi修飾。

map定義及初始化

mapword_count;    //空容器

mapauthors =,

,}; //直接初始化

map封裝好的功能

auto mp_it = word_count.begin(); //定義乙個迭代器,指向map首元素

mp_it->first //string關鍵字

mp_it->second //int 值

支援begin和end操作

word_count.begin();

word_count.end();

新增元素

word_count.insert(); //花括號方式

word_count.insert(make_pair(「and」, 5)); //pair方式

返回的是乙個pair,pair.first是指向插入元素的迭代器;pair.second是bool,true代表插入成功。

例:

auto ret = word_count.insert(make_pair("and", 5));

if( ret.second ) //代表插入成功

刪除元素

word_count.erase("and"); //刪除關鍵字為and的元素,返回刪除數量

word_count.erase(it); //刪除迭代器it指向的元素,返回it之後元素的迭代器

word_count.erase(it1, it2); //刪除兩個迭代器之間的元素,返回it2

訪問元素

使用find或者count函式。

word_count.find("and");  //返回迭代器,第一次and出現位置

word_count.count("and"); //返回and出現的次數

/* 無序容器不建議使用lower_bound() upper_bound() equal_range()*/

map實現-統計單詞出現次數

mapword_count;

string str;

while(cin>>str)

++word_count[str]; //下標操作,如果有str,加1;如果沒有,會自動插入

for(const auto it : word_count)

cout<

C 關聯容器之map

認識map map型別通常被稱為關聯陣列,關聯陣列與 正常 陣列類似,不同之處在於其下標不必是整數。map是標準的關聯式容器,乙個map是乙個鍵值對序列,即 key,value 對。它提供基於key的快速檢索能力。map中key值是唯一的。集合中的元素按一定的順序排列。元素插入過程是按排序規則插入,...

c 之關聯容器map

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

C primer 關聯容器之map

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