C++ Primer學習總結 第10章 泛型算法

第10章 泛型算法


1.    find()泛型算法使用示例:

 

2.    只讀算法accumulate:對所給範圍的元素求和並返回. 注意accumulate的第3個參數決定着它的返回類型. 即如果第3個參數是double,就算迭代器裏都是int,最終還是返回double類型的數.

 

3.    只讀算法equal:比較前兩個迭代器表示範圍的所有元素是否與第3個迭代器表示的對應位置的元素都相同,如果相同返回true。兩個容器類型可以不同,保存的元素類型也可以不同,只要元素之間可以比較即可.如string類型和const char*類型之間的比較.

 

4.    寫容器算法fill:將指定值賦予容器中的元素. 容器不能爲空.

 

5.    使用back_inserter(一種插入迭代器)的示例:

 

6.    拷貝算法copy 和 replace. 只有replace_copy不換改變原迭代器所指的容器內的元素值.

 

7.    排序去重算法sort和unique.

注意:unique並不真正刪除容器重複元素,它只不過是把重複元素用不重複元素的值覆蓋,容器後面的空間依然有效,不過值是多少就不一定了.

 

8.    穩定排序stable_sort 與 定製操作:

 

9.    lambda與find_if的用法:

 

10.  for_earch算法:對迭代器範圍內的每個元素調用一元謂詞:

 

11.  lambda的特性:

 

12.  bind函數:P354

 

13.  插入迭代器back_inserter, front_inserter, inserter:

對插入迭代器it執行*it ,++it, it++,it--,--it操作沒有任何作用.

假設auto it=inserter(vc,vc.begin()+1); 生成了一個插入迭代器,那麼通過it=20插入元素的話,永遠只插在vc.begin()+1的前面:

 

使用inserter:

 

使用back_inserter:

 

使用front_inserter:

 

14.  反向迭代器 P363

反向迭代器可以用過rbegin()和rend()方法獲得,其++,--與普通迭代器的操作含義不同,需要注意. 可以用base()方法將一個反向迭代器轉爲普通迭代器.

 


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