第十章 關聯容器(下)

2021-07-04 17:49:32 字數 2009 閱讀 6479

1.set型別的關聯容器

set容器跟map容器相類似,只不過set的容器只是單純的鍵的集合。set容器不支援下標操作,元素型別不是value_type型別,而是key_type型別。即set容器僅僅只儲存鍵,而沒有所關聯的值。與map容器一樣,儲存的鍵也必須是唯一的,不能修改。

2.set的容器的定義

setiset;建立乙個空的set的物件iset,元素型別為t。

setiset(b,e);建立乙個set的物件iset,有迭代器b和e指定範圍的元素初始化,元素必須是t型別。

3.set的容器的新增元素

由於set容器不支援下標操作,所以只有與map容器一樣採用insert操作來新增元素。

setset1("liujiyu"),set2("nihao");

set1.insert(set2.begin(),set2.end());

4.set容器讀取相應的元素

set容器和map容器獲取元素的時候不同,set的容器採用find和count成員函式來獲取元素。

setiset;

iset.find(a);查詢整數a的值,如果存在,則返回指向a的位置的迭代器。否則返回指向set.end()的迭代器

iset.count(a);查詢整數a出現的次數。在set的容器中,count成員函式返回的只有0或者1

5.遍歷set容器的元素

這個操作跟map容器一樣,通過迭代器來遍歷,唯一不同的是set的容器僅僅只有鍵值,所以直接對其進行解引用就可以得到相應的鍵值。

6.multimap和multiset容器

multimap容器是是乙個鍵對應多個不同的值。multiset就是存在多個相同的鍵。並且multimap不支援下標操作。

multimap和multiset容器的新增刪除元素:

新增元素的操作是採用insert操作來實現的。插入之後相應的鍵值就是按照從小到大的順序排列的。

刪除元素的操作是採用erase來實現的。該刪除操作是刪除所有相同的鍵的元素。

7.multimap和multiset容器中查詢元素

查詢元素主要通過find和count來個成員函式共同來完成,通過find成員函式找到相應鍵的第乙個位置,count成員函式統計該鍵出現的次數。然後再利用乙個迴圈將這相同鍵的元素都輸出。

如:multimapimulmap;

string s;

while(cin>>s)

string s1;cin>>s1;

multimap::iterator it=imulmap.find(s1);

multimap::size_type ix=imulmap.count(s1);

for(multimap::size_type itt=0;itt!=ix;++itt)

cout8.與眾不同的面向迭代器的解決方案

以下操作適合所有的關聯容器:

m.lower_bound(k) 返回乙個迭代器,指向鍵不小於k的第乙個元素

m.upper_bound(k)   返回乙個迭代器,指向鍵大於k的第乙個元素

m.equal_range(k)    返回乙個迭代器的pair物件,它的first成員等價於m.lower_bound(k),而second成員等價於m.upper_bound(k)  

如:multimapimulmap;

string s;

while(cin>>s)

string s1;cin>>s1;

multimap::iterator beg=imulmap.lower_bound(s1),end=imulmap.upper_bound(s1);

while(beg!=end)

使用equal_range函式:multimapimulmap;

string s;

while(cin>>s)

string s1;cin>>s1;

pair::iterator,multimap::iterator> iter=imulmap.equal_range(s1);

while(iter.first!=iter.second)

第十章 關聯容器

第十章 關聯容器 1 關聯容器型別 set容器 儲存不同的值 map容器 儲存每個鍵所關聯的值 2 pair型別 兩個型別不必相同 3 map型別 1 map物件的定義 mapword count 2 map定義的型別 3 使用下標訪問map物件 用下標訪問不存在的元素會新增乙個新的元素 map迭代...

第十章 異常處理下

try finally 語句無論是否發生異常都將執行最後的 以下例題中 finally 語句無論異常是否發生都會執行 例題 try runoob except assertionerror as error print error else try with open file.log as fil...

第十章 函式

使用def關鍵字 定義個數可變的位置形參 定義個數可變的關鍵字形參 定義預設值引數 定義個數可變的位置形參 deffun1 args 結果為乙個元組 print args fun1 10,20,30 10,20,30 定義個數可變的關鍵字形參 deffun2 args 結果為乙個字典 print a...