C primer 關聯容器

2021-09-30 08:24:11 字數 1091 閱讀 7028

pairp1;

pairp1(v1,v2);//v1為t1型別,v2為t2型別

make_pair(v1,v2);//返回乙個pair物件

p.first;

p.second;

關聯容器不能通過容器大小定義,不能用resize。

mapm(m2);

mapm;

mapm(b,e); //b,e為map迭代器。

鍵必須支援<。

map::key_type 為鍵型別

map新增元素比較簡便。類似下標就可。

如mapword;

word["a"]=1;//insert(make_pair("a",1);

word["a"]返回乙個關聯值

因此可以用map方便記錄單詞出現的次數。

mapword_count;

string word;

while(cin>>word)

word_count[word]++;  

map的insert

m.insert(e); //e為pair 返回乙個e的乙個迭代器和bool判斷是否成功插入

m.insert(beg,end);//返回void

m.insert(iter,e); //iter為輔助,返回迭代器,指向m中具有特定鍵的元素

m.count(k); //返回m中k的出現次數

m.find(k); //是否存在按k索引的元素,返回元素迭代器

m.erase(k);//刪除鍵為k的元素。返回size_type型別,表示刪除的元素個數。

m.erase(p);//刪除迭代器p所指的元素,返回void

m.erase(b,e); //刪除b,e的元素返回void

map可以作為單詞轉換,**簿,字典。

set不支援下標操作符,

insert(key); //返回pair ;

set可以幫map忙記錄單詞排除的集。

multimap 不支援下標運算。

insert總會加元素。erase會刪除所有符合的元素,返回刪除個數。

在multimap中乙個鍵所關聯的元素必然相鄰存放,因此找到第乙個後,只要迭代器++,則能找到全部。

C Primer 筆記 關聯容器

關聯容器 associative container 支援通過鍵來高效的查詢和讀取元素。map 關聯陣列,元素通過鍵來儲存和讀取 set 大小可變的集合,支援通過鍵來快速讀取 multimap 支援同乙個鍵出現多次的map型別 multiset 支援同乙個鍵多次出現的set型別 pairp1 建立乙...

c primer 關聯容器 map

map 是鍵 值對的集合。map型別通常可以理解為關聯陣列,其本質在於元素的值和某個特定的鍵向關聯,而非通過元素在陣列中的位置來獲取 宣告與定義 mapm mapword count 迭代器 map iterator it 對鍵型別的約束 鍵型別必須支援 操作符 map定義的型別 1.迭代器進行解引...

《C Primer》學習筆記 關聯容器

一,pair型別 pairp1 建立乙個空pair指標,兩個元素分別是t1,t2型別,採用值初始化 pairp1 v1,v2 first成員初始化為v1,second成員為v2 make pair v1,v2 建立新的pair物件 p1 p2 p1 p2 p.first 返回first成員 p.se...