STL algorithm演算法inplace_merge(24),stl演算法

來源:互聯網
上載者:User

STL algorithm演算法inplace_merge(24),stl演算法

inplace_merge原型:

std::inplace_merge
default (1)
template <class BidirectionalIterator>  void inplace_merge (BidirectionalIterator first, BidirectionalIterator middle,                      BidirectionalIterator last);
custom (2)
template <class BidirectionalIterator, class Compare>  void inplace_merge (BidirectionalIterator first, BidirectionalIterator middle,                      BidirectionalIterator last, Compare comp);
該函數是將[first,middle)和[middle,last)兩個已經有序的序列合并成一個有序的序列。

兩個小區間應該已經有序,並且都是使用同一定序。

注意的是first,middle,last都是在同一個容器裡面的,只是被分開成了兩個區間。

一個簡單的例子:

#include <iostream>#include <vector>#include <array>#include <algorithm>using namespace std;void inplacemerge(){    vector<int> vi{1,5,8,19,1,8,56};    cout<<"at first,vi=";    for_each(vi.begin(),vi.end(),[](int i){cout<<i<<" ";});    cout<<endl;    inplace_merge(vi.begin(),vi.begin()+4,vi.end());    cout<<"after inplace_merge(vi.begin(),vi.begin()+4,vi.end());,vi="<<endl;;    for_each(vi.begin(),vi.end(),[](int i){cout<<i<<" ";});    cout<<endl;}
運行:



——————————————————————————————————————————————————————————————————

//寫的錯誤或者不好的地方請多多指導,可以在下面留言或者點擊左上方郵件地址給我發郵件,指出我的錯誤以及不足,以便我修改,更好的分享給大家,謝謝。

轉載請註明出處:http://blog.csdn.net/qq844352155

author:天下無雙

Email:coderguang@gmail.com

2014-9-16

於GDUT

——————————————————————————————————————————————————————————————————



為何STL中的algorithm採用全域函數實現,而不可以採用容器類的成員函數實現?

因為algorithm中的演算法是跨容器的、泛型的。
不僅不限於某一個容器,甚至任何實現介面的資料類型都可以使用。
int char這種基礎類型可以用,MyType自訂類型也可以用。容器也可以用
 
對於STL algorithm的for_each()第三個參數問題

......,print<int>);
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.