C++ primer 第十章

1. 容器元素根據鍵的次序排列。在迭代遍歷關聯容器時,我們可確保按鍵的順序訪問,而與元素的存放順序無關。

 

2. 對於鍵的類型,要求必須支持 < 操作符,也就是鍵之間可以正確的比較大小。

 

3. map的迭代器返回value_type類型的值,是一個包含const key_type和mapped_type的pair對象,即pair <const key_type, mapped_type>;而下標操作符返回的是mapped_type類型的值。

 

4. 對map容器用下標進行插入元素時,會先進行值初始化,然後將鍵值對插入map,再將插入的值賦予該鍵值對。例:

對map <string, int> a 進行下標插入操作a["xxx"]=100時,會先初始化一個int對象,值爲0,然後將<"xxx",0>這一鍵值對插入a中,然後讀取插入的值100,將100賦給該元素。

 

使用insert函數可以避免不必要的初始化。

a.insert(map<string,int>::value_type("xxx",100));

a.insert(make_pair("xxx",100));//簡化方法

 

5. 帶有一個鍵值pair的insert函數將返回一個pair<map<key_type, mapped_type>::iterator, bool>的對象。迭代器指向該元素的位置,bool值表示是否插入成功,如果值爲true表示插入成功,否則表示已經存在該鍵。

 

6. set存儲的元素僅僅是鍵,而沒有關聯的值。

 

7. map和set中元素是按順序存儲的,在multimap和multiset中也一樣,如果某個鍵對應多個value,則這些實例將相鄰存放。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章