C++ primer 第九章

1. 不能直接將一種容器內的元素複製給另一種容器,但允許通過傳遞一對迭代器間接實現該功能。試用迭代器時,不要求容器類型相同,容器內的元素類型也可以不相同,只要它們相互兼容,能夠將要複製的元素轉換爲新容器的元素類型,就可以實現複製。

 

2. 指針就是迭代器,所以也允許通過使用內置數組中的一對指針初始化容器。

 

3. 任何insert或push操作都可能導致迭代器失效。當編寫循環將元素插入到vector或deque容器中時,必須確保迭代器在每次循環後都得到更新。

 

4. swap不會刪除會插入任何元素,而且保證在常量時間內實現交換。由於容器內沒有移動任何元素,因此迭代器不會失效。

 

5. 爲了使vector實現快速的內存分配,其實際分配的容量要比當前所需的空間多一些。vector用這些額外的存儲區來存放新添加的元素。

size函數返回當前的元素個數,而capacity返回可以存儲的元素總數。

 

6. string類將npos定義爲保證大於任何有效下標的值。所以當進行字符串查找時,若返回string::npos,則表示查找沒有匹配。

 

7. 適配器包括容器適配器、迭代器適配器和函數適配器。本質上,適配器是使一事物的行爲類似於另一事物的行爲的一種機制。

容器適配器讓一種以存在的容器採用另一種不同的抽象類型的工作方式實現。

 

8. 容器適配器包含:queue, priority_queue, stack三種。

stack可以建立在vector, list或deque容器之上。

queue要求與其關聯的基礎容器提供push_front運算,因此不能建立在vector容器上。

priority_queue要求隨機訪問功能,因此可建立在vector或者deque容器上,不能建立在list容器上。

發佈了84 篇原創文章 · 獲贊 9 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章