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

來源:互聯網
上載者:User

標籤:c++ primer 第5版本   c++11   c++   

第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()方法將一個反向迭代器轉為普通迭代器.

 


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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.