青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Benjamin

靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
隨筆 - 398, 文章 - 0, 評論 - 196, 引用 - 0
數據加載中……

STL算法(Algorithms):合并(Merge)

1、merge:將兩個序列合并成一個新的序列,并對新的序列排序
原型:
template <class InputIterator1, class InputIterator2, class OutputIterator>
  OutputIterator merge ( InputIterator1 first1, InputIterator1 last1,
                         InputIterator2 first2, InputIterator2 last2,OutputIterator result );
template <class InputIterator1, class InputIterator2,class OutputIterator, class Compare>
OutputIterator merge ( InputIterator1 first1, InputIterator1 last1,
                         InputIterator2 first2, InputIterator2 last2,OutputIterator result, Compare comp );
示例:

// merge algorithm example
#include <iostream>
#include 
<algorithm>
#include 
<vector>
using namespace std;

int main () {
  
int first[] = {5,10,15,20,25};
  
int second[] = {50,40,30,20,10};
  vector
<int> v(10);
  vector
<int>::iterator it;

  sort (first,first
+5);
  sort (second,second
+5);
  merge (first,first
+5,second,second+5,v.begin());

  cout 
<< "The resulting vector contains:";
  
for (it=v.begin(); it!=v.end(); ++it)
    cout 
<< " " << *it;

  cout 
<< endl;
  
  
return 0;
}



2、inplace_merge:將兩個序列合并成一個新的序列,并對新的序列進行歸并排序(這兩個序列必須要進過排序)
原型:
template <class BidirectionalIterator>
void inplace_merge ( BidirectionalIterator first, BidirectionalIterator middle,
                       BidirectionalIterator last );

template <class BidirectionalIterator, class Compare>
 void inplace_merge ( BidirectionalIterator first, BidirectionalIterator middle,
                       BidirectionalIterator last, Compare comp );
示例:

// inplace_merge example
#include <iostream>
#include 
<algorithm>
#include 
<vector>
using namespace std;

int main () {
  
int first[] = {5,10,15,20,25};
  
int second[] = {50,40,30,20,10};
  vector
<int> v(10);
  vector
<int>::iterator it;

  sort (first,first
+5);
  sort (second,second
+5);

  copy (first,first
+5,v.begin());
  copy (second,second
+5,v.begin()+5);

  inplace_merge (v.begin(),v.begin()
+5,v.end());

  cout 
<< "The resulting vector contains:";
  
for (it=v.begin(); it!=v.end(); ++it)
    cout 
<< " " << *it;

  cout 
<< endl;
  
  
return 0;
}


 

3、includes:測試是一個序列是否在另一個序列中
原型:
template <class InputIterator1, class InputIterator2>
bool includes ( InputIterator1 first1, InputIterator1 last1,
                InputIterator2 first2, InputIterator2 last2 );
template <class InputIterator1, class InputIterator2, class Compare>
bool includes ( InputIterator1 first1, InputIterator1 last1,
                InputIterator2 first2, InputIterator2 last2, Compare comp );
示例:

// includes algorithm example
#include <iostream>
#include 
<algorithm>
using namespace std;

bool myfunction (int i, int j) { return i<j; }

int main () {
  
int container[] = {5,10,15,20,25,30,35,40,45,50};
  
int continent[] = {40,30,20,10};

  sort (container,container
+10);
  sort (continent,continent
+4);

  
// using default comparison:
  if ( includes(container,container+10,continent,continent+4) )
    cout 
<< "container includes continent!" << endl;

  
// using myfunction as comp:
  if ( includes(container,container+10,continent,continent+4, myfunction) )
    cout 
<< "container includes continent!" << endl;

  
return 0;
}


 

4、set_union:和merge類似,不過新序列中沒有重復的元素
原型:
template <class InputIterator1, class InputIterator2, class OutputIterator> 
OutputIterator set_union ( InputIterator1 first1, InputIterator1 last1,         
                           InputIterator2 first2, InputIterator2 last2,OutputIterator result );
template <class InputIterator1, class InputIterator2, class OutputIterator, class Compare> 
OutputIterator set_union ( InputIterator1 first1, InputIterator1 last1,
                           InputIterator2 first2, InputIterator2 last2,OutputIterator result, Compare comp );
示例:

// set_union example
#include <iostream>
#include 
<algorithm>
#include 
<vector>
using namespace std;

int main () {
  
int first[] = {5,10,15,20,25};
  
int second[] = {50,40,30,20,10};
  vector
<int> v(10);                           // 0  0  0  0  0  0  0  0  0  0
  vector<int>::iterator it;

  sort (first,first
+5);     //  5 10 15 20 25
  sort (second,second+5);   // 10 20 30 40 50

  it
=set_union (first, first+5, second, second+5, v.begin());
                                               
// 5 10 15 20 25 30 40 50  0  0

  cout 
<< "union has " << int(it - v.begin()) << " elements.\n";

  
return 0;
}


 

5、set_intersection:兩個序列的交集
原型:
template <class InputIterator1, class InputIterator2, class OutputIterator> 
OutputIterator set_intersection ( InputIterator1 first1, InputIterator1 last1,
                                  InputIterator2 first2, InputIterator2 last2,OutputIterator result );
template <class InputIterator1, class InputIterator2,class OutputIterator, class Compare>
OutputIterator set_intersection ( InputIterator1 first1, InputIterator1 last1,
                                  InputIterator2 first2, InputIterator2 last2,OutputIterator result, Compare comp );
示例:

// set_intersection example
#include <iostream>
#include 
<algorithm>
#include 
<vector>
using namespace std;

int main () {
  
int first[] = {5,10,15,20,25};
  
int second[] = {50,40,30,20,10};
  vector
<int> v(10);                           // 0  0  0  0  0  0  0  0  0  0
  vector<int>::iterator it;

  sort (first,first
+5);     //  5 10 15 20 25
  sort (second,second+5);   // 10 20 30 40 50

  it
=set_intersection (first, first+5, second, second+5, v.begin());
                                               
// 10 20 0  0  0  0  0  0  0  0

  cout 
<< "intersection has " << int(it - v.begin()) << " elements.\n";

  
return 0;
}


 

6、set_difference:序列(first1,last1)不在序列(first2,last2)中的元素
原型:
template <class InputIterator1, class InputIterator2, class OutputIterator> 
OutputIterator set_intersection ( InputIterator1 first1, InputIterator1 last1,
      InputIterator2 first2, InputIterator2 last2,outputIterator result );
template <class InputIterator1, class InputIterator2, class OutputIterator, class Compare> 
OutputIterator set_intersection ( InputIterator1 first1, InputIterator1 last1,
                                  InputIterator2 first2, InputIterator2 last2,OutputIterator result, Compare comp );
示例:

// set_difference example
#include <iostream>
#include 
<algorithm>
#include 
<vector>
using namespace std;

int main () {
  
int first[] = {5,10,15,20,25};
  
int second[] = {50,40,30,20,10};
  vector
<int> v(10);                           // 0  0  0  0  0  0  0  0  0  0
  vector<int>::iterator it;

  sort (first,first
+5);     //  5 10 15 20 25
  sort (second,second+5);   // 10 20 30 40 50

  it
=set_difference (first, first+5, second, second+5, v.begin());
                                               
// 5 15 25  0  0  0  0  0  0  0

  cout 
<< "difference has " << int(it - v.begin()) << " elements.\n";

  
return 0;
}


 

7、set_symmetric_difference:所有不在序列(first1,last1)和序列(first2,last2)中的元素
原型:
template <class InputIterator1, class InputIterator2, class OutputIterator> 
OutputIterator    set_symmetric_difference ( InputIterator1 first1, InputIterator1 last1,
                                             InputIterator2 first2, InputIterator2 last2,OutputIterator result );
template <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>
OutputIterator    set_symmetric_difference ( InputIterator1 first1, InputIterator1 last1,
                                             InputIterator2 first2, InputIterator2 last2,OutputIterator result, Compare comp );
示例:

// set_symmetric_difference example
#include <iostream>
#include 
<algorithm>
#include 
<vector>
using namespace std;

int main () {
  
int first[] = {5,10,15,20,25};
  
int second[] = {50,40,30,20,10};
  vector
<int> v(10);                           // 0  0  0  0  0  0  0  0  0  0
  vector<int>::iterator it;

  sort (first,first
+5);     //  5 10 15 20 25
  sort (second,second+5);   // 10 20 30 40 50

  it
=set_symmetric_difference (first, first+5, second, second+5, v.begin());
                                               
// 5 15 25 30 40 50  0  0  0  0

  cout 
<< "symmetric difference has " << int(it - v.begin()) << " elements.\n";

  
return 0;
}


posted on 2012-02-05 21:33 Benjamin 閱讀(10162) 評論(0)  編輯 收藏 引用 所屬分類: 泛型編程

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩在线一区| 欧美日韩国产综合一区二区| 亚洲国产精品999| 欧美一区91| 久久久国产一区二区| 韩国av一区二区三区| 久久精品二区亚洲w码| 免费91麻豆精品国产自产在线观看| 狠狠色伊人亚洲综合成人| 久久免费精品日本久久中文字幕| 久久综合九色欧美综合狠狠| 亚洲国产精品专区久久| 欧美精品二区三区四区免费看视频| 欧美成人高清| 一本一本a久久| 国产精品区一区| 欧美在线在线| 亚洲人成在线观看一区二区| 亚洲国产福利在线| 欧美激情一区二区三区在线视频观看 | 久久综合久色欧美综合狠狠 | 国产一区二区三区网站| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲成人在线视频播放 | 亚洲中午字幕| 国产视频自拍一区| 欧美成人一区二区三区在线观看 | 一本不卡影院| 老司机67194精品线观看| 一本色道久久88精品综合| 国产视频一区在线观看一区免费| 久热精品在线| 午夜精品视频在线观看| 亚洲日韩欧美视频一区| 久久久女女女女999久久| 日韩视频一区二区三区在线播放免费观看 | 免费亚洲视频| 亚洲一区二区三区在线观看视频| 国产精品视频一区二区高潮| 欧美成在线视频| 久久久亚洲成人| 午夜性色一区二区三区免费视频| 亚洲国产一区在线观看| 久久综合亚洲社区| 久久国产色av| 午夜一区不卡| 亚洲系列中文字幕| av不卡在线| 亚洲免费福利视频| 亚洲精品一区二区在线观看| 国产一区二区三区精品久久久 | 欧美高清免费| 久久免费偷拍视频| 亚洲欧美中文在线视频| 亚洲视频在线观看免费| 亚洲国产精品美女| 亚洲电影专区| 欧美激情精品久久久久久黑人| 久久亚洲电影| 久久综合色一综合色88| 久久精品国产成人| 久久精品免费观看| 欧美在线视频免费观看| 久久爱另类一区二区小说| 一区二区欧美在线| 亚洲激情黄色| 亚洲精品久久久久久下一站 | 久久国产精品一区二区| 欧美综合国产精品久久丁香| 亚洲影院一区| 欧美在线视频观看| 久久综合色播五月| 亚洲国产天堂久久国产91| 亚洲国内高清视频| 99亚洲一区二区| 中文在线不卡| 欧美一区免费视频| 久久久久久电影| 欧美激情1区2区3区| 欧美视频在线观看一区| 国产九色精品成人porny| 国产日韩在线播放| 一区二区三区在线看| 亚洲国产精品一区二区三区| aa级大片欧美三级| 午夜精品一区二区三区四区| 欧美在线一区二区三区| 久久美女性网| 亚洲第一在线综合网站| 亚洲精品国产精品国自产观看浪潮| 99re热精品| 亚洲欧美综合精品久久成人| 久久都是精品| 欧美日韩国产小视频在线观看| 国产精品午夜在线观看| 亚洲国产片色| 性感少妇一区| 欧美成人免费视频| 中国女人久久久| 久久综合九色| 国产欧美日韩精品丝袜高跟鞋| 伊人久久婷婷| 亚洲一区二区精品在线观看| 久久综合给合| 韩国精品一区二区三区| 日韩一级免费| 久久综合色影院| 亚洲一区成人| 欧美精品成人在线| 在线观看欧美亚洲| 久久国产精品久久久久久电车| 亚洲日本在线视频观看| 久久久999精品免费| 国产精品手机在线| 中日韩高清电影网| 亚洲国产精品成人综合色在线婷婷 | 亚洲在线一区二区| 欧美大片网址| 1000部精品久久久久久久久| 久久精品国产免费| 亚洲网站视频福利| 欧美日韩成人在线观看| 黄网站免费久久| 久久国产精品色婷婷| 亚洲欧美日韩天堂| 国产精品国产自产拍高清av王其 | 久久久噜噜噜久久狠狠50岁| 在线亚洲一区观看| 欧美精品一区二区三区视频| 在线成人亚洲| 欧美wwwwww| 老司机亚洲精品| 亚洲国产精品美女| 免播放器亚洲| 久久一区中文字幕| 亚洲福利视频一区| 欧美刺激性大交免费视频| 久久久免费精品| 亚洲国产婷婷香蕉久久久久久99 | 激情成人av在线| 久久嫩草精品久久久精品一| 午夜精品理论片| 国产欧美一区二区精品婷婷| 欧美一进一出视频| 小嫩嫩精品导航| 国产精品中文在线| 久久国产精品72免费观看| 欧美一区二区| 影音先锋日韩资源| 欧美刺激午夜性久久久久久久| 免费日韩av| 亚洲美女色禁图| 一区二区三区免费观看| 欧美性大战久久久久| 亚洲欧美在线一区二区| 欧美一区二区观看视频| 国产专区欧美专区| 免费短视频成人日韩| 久久综合久久综合久久| 99精品国产99久久久久久福利| 一本久久a久久免费精品不卡| 国产精品久久久久婷婷| 久久久999精品| 欧美大片在线看| 亚洲影音一区| 久久久久久亚洲精品杨幂换脸| 亚洲精品影视| 亚洲欧美日韩一区二区三区在线| 韩国成人精品a∨在线观看| 欧美大片在线看| 国产精品久久久久久久久久免费看 | 一本大道久久a久久精品综合 | 国产精品福利av| 久热国产精品| 欧美另类极品videosbest最新版本| 亚洲资源在线观看| 久久精彩视频| 亚洲免费在线视频| 久久伊人精品天天| 欧美影院成年免费版| 欧美激情亚洲自拍| 久久九九99视频| 国产精品a久久久久久| 欧美大学生性色视频| 国产精品亚洲一区| 99re6这里只有精品视频在线观看| 一区二区亚洲| 亚洲男人的天堂在线观看| 亚洲美女av网站| 久久日韩精品| 久久久久久久久久久一区| 欧美三级日本三级少妇99| 免费视频最近日韩| 狠狠88综合久久久久综合网| 亚洲午夜久久久久久尤物 | 亚洲视频自拍偷拍| 99精品久久| 久久综合九色九九| 久久久噜噜噜久久| 国产午夜精品视频免费不卡69堂|