C primer學習筆記 第10章

2021-06-22 19:01:21 字數 1853 閱讀 8693

1.關聯容器通過鍵key 儲存和讀取元素。兩個基本的關聯容器是map和set。

3.set比較適合有效儲存不同值的集合,而map適用於儲存(或修改)每個鍵所關聯值的情況。

5.建立pair物件時,必須提供兩個型別名。

6.對於pair類,可以直接訪問其資料成員,其成員都是公有的,分別名為first和second。

7.在迭代遍歷關聯容器時,按鍵的順序訪問元素,而與元素在容器中的存放位置完全無關。

9.比較函式在鍵型別上 嚴格弱排序。當乙個鍵與自身比較時 返回false結果。

10.對於鍵 型別,唯一的約束就是必須支援 < 操作符。

11.value_type 是儲存元素的鍵以及值的pair型別, 而且鍵為 const。即它的值成員可修改,鍵成員不能修改。

12.用下標訪問不存在的元素將導致在map容器中新增乙個新的元素,它的鍵即為該下標值。

14.下標操作符帶來的***:不必要的初始化。

15.使用make_pair和typedef簡化。

18.map容器是鍵-對的集合;set容器只是單純的鍵的集合。

20.set中的鍵也為const。

21.multimap不支援下標運算。

22.在multimap和multiset容器中,如果某個鍵對應多個例項,則這些例項在容器中相鄰存放。

24.lower_bound返回的迭代器指向該鍵關聯的第乙個例項,若該鍵不在容器中,則lower_bound返回在保持容器元素順序的前提下該鍵應被插入的第乙個位置。

25.equal_range函式返回儲存一對迭代器的pair物件。

26.mapwordcount;可用作其下標的型別為string和c風格字串(包括字面值、陣列名、指標)。

27.帶乙個鍵-值pair形參的insert函式將返回乙個pair物件,該物件包含乙個迭代器和乙個bool值,其中迭代器指向map中具有相應鍵的元素,而bool值則表示是否插入了該元素。

28.map< string,vector>型別,引數型別為pair< const string,vector>,返回值型別為pair< map< string,vector> ::iterator,bool>。

29.set容器中的元素不能修改。

30.在使用關聯容器時,它的鍵不但有乙個型別,而且還有乙個相關的比較函式。 所用的比較函式必須在鍵型別上定義

嚴格弱排序(strict weak ordering)

。所謂的嚴格弱排序可理解為鍵型別資料上的「小於」關係。當用於乙個鍵與自身的比較時,肯定會導致 

false

結果。如果它們相互之間都不存在「小於」關係,則容器將之視為相同的鍵。

用做 map 物件的鍵時,可使用任意乙個鍵值來訪問相應的元素。

C primer學習筆記 第7章

1.形參的初始化與變數的初始化一樣 如果形參具有非引用型別,則複製實參的值,如果形參為引用型別,則它只是實參的別名。2.c中習慣用傳遞指標來實現對實參的訪問。c 中,使用引用形參更安全。3.如果使用引用形參唯一的目的是避免複製形參,則應將形參定義為const引用。4.非const引用形參 只能與完全...

c primer 學習筆記 1 第1 5章

1.輸入輸出 流 隨著時間的推移,字元是順序生成或消耗的 std cout hello world endl 運算子接受兩個運算物件,左側必須是ostream,右側是要列印的值,計算結果返回ostream物件中。上述使用兩次 運算子,第一次運算結果成了第二次的左側物件。note 在寫過載 運算子是要...

C primer 學習筆記 第9章(1)

這部分的內容你在寫程式的時候肯定是處處都能用到的,而且會讓你的程式很簡潔。本章其實是第三章內容的拓展,詳細地介紹了標準庫順序容器的知識。乙個容器就是一些 特定同一型別 物件的集合。順序容器為程式設計師提供了控制元素儲存和訪問順序的能力。這種順序不依賴於元素的值,而是與元素加入容器時的位置相對應。所有...