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

Benjamin

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

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類似,不過新序列中沒有重復(fù)的元素
原型:
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 閱讀(10181) 評論(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>
            国产精品美女在线| 国产精品一区视频| 亚洲精品国产系列| 亚洲日本一区二区三区| 欧美高清在线视频| 亚洲婷婷在线| 午夜日韩激情| 亚洲国产精品一区制服丝袜| 欧美激情精品久久久六区热门| 美女脱光内衣内裤视频久久网站| 亚洲精品美女在线观看播放| 亚洲人体一区| 国产精品美女一区二区在线观看| 久久九九99视频| 免费亚洲一区| 亚洲免费视频在线观看| 欧美在线视频二区| 91久久综合| 一区二区三区久久久| 国产日韩综合一区二区性色av| 免费成人网www| 欧美日韩一区在线播放| 久久爱另类一区二区小说| 久久亚洲一区二区三区四区| 中文国产亚洲喷潮| 久久gogo国模裸体人体| 夜夜狂射影院欧美极品| 亚洲女同精品视频| 亚洲人成绝费网站色www| 一区二区三区国产| 永久555www成人免费| 日韩亚洲欧美成人一区| 狠狠色狠狠色综合日日小说| 99国产精品99久久久久久粉嫩| 国产一区二区三区久久精品| 日韩视频中文字幕| 亚洲二区视频在线| 亚洲一区二区三区国产| 亚洲美女av网站| 久久成人免费电影| 亚洲欧美日韩一区在线| 麻豆精品视频在线观看视频| 午夜精品剧场| 欧美日韩国产高清| 欧美国产综合| 韩国一区二区三区美女美女秀| 一区二区免费在线视频| 亚洲毛片在线看| 久久久亚洲高清| 欧美一区中文字幕| 国产精品二区影院| 91久久精品一区二区三区| 狠狠色综合网| 午夜在线精品| 欧美一区二区三区免费看 | 麻豆精品视频在线观看| 国产精品久久久久久模特| 亚洲激情视频网| 亚洲国产精品热久久| 久久精品国产精品亚洲综合| 久久av红桃一区二区小说| 国产精品毛片一区二区三区 | 蜜乳av另类精品一区二区| 国产日韩欧美成人| 午夜日韩在线观看| 欧美在线视频网站| 国产日韩精品视频一区二区三区| 亚洲视频专区在线| 午夜精品久久久久99热蜜桃导演| 欧美网站大全在线观看| 一区二区三区四区蜜桃| 亚洲一区二区在线看| 国产精品va| 亚洲影视在线| 久久都是精品| 激情婷婷亚洲| 欧美va天堂在线| 亚洲日韩欧美一区二区在线| 一区二区三区国产精华| 欧美三级乱码| 亚洲欧美视频一区二区三区| 久久久精品一区| 在线精品视频免费观看| 农村妇女精品| 99在线视频精品| 欧美一区二区成人| 在线观看精品视频| 欧美激情欧美狂野欧美精品| 夜夜精品视频| 久久久久国产精品厨房| 亚洲激情成人| 国产精品久久久对白| 性感少妇一区| 亚洲国产欧美一区二区三区久久| 一区二区高清| 国产一区导航| 欧美成人午夜剧场免费观看| 9色精品在线| 久久蜜臀精品av| av不卡在线| 含羞草久久爱69一区| 欧美精品 日韩| 亚洲欧美日韩在线观看a三区| 蜜月aⅴ免费一区二区三区| 日韩午夜激情av| 国产亚洲一区在线播放| 欧美精品成人| 欧美一级片在线播放| 亚洲欧洲日本mm| 久久久久看片| 国产精品99久久久久久久女警 | 欧美黑人多人双交| 亚洲欧美制服另类日韩| 亚洲精品1234| 蜜臀av国产精品久久久久| 亚洲网站视频| 亚洲国产精品国自产拍av秋霞| 国产精品久在线观看| 免费观看久久久4p| 久久国产一二区| 亚洲影院在线观看| 亚洲人妖在线| 欧美韩日精品| 久久久999精品| 午夜久久tv| 亚洲视频1区| 亚洲精品在线观| 在线免费一区三区| 国产午夜亚洲精品不卡| 国产精品久久久久9999高清| 欧美激情成人在线| 久久久久久黄| 久久激情综合网| 亚洲欧美日韩综合一区| 一区二区三区精品视频| 91久久久国产精品| 亚洲国产99精品国自产| 欧美大片在线观看一区二区| 久久久久久久久蜜桃| 久久精品首页| 久久精品视频在线播放| 久久精品免费电影| 欧美主播一区二区三区美女 久久精品人 | 久久黄色网页| 亚洲网站视频福利| 亚洲视频在线二区| 亚洲国产精品久久人人爱蜜臀| 国产一区二区三区观看| 国产日韩精品视频一区二区三区| 国产精品三级久久久久久电影| 欧美性猛交视频| 欧美四级在线| 国产毛片精品国产一区二区三区| 国产精品久久久久久久9999| 国产精品igao视频网网址不卡日韩| 欧美日韩在线影院| 国产精品久久久久久久久久ktv| 国产精品蜜臀在线观看| 国产精品一区一区| 国产一区二区三区久久悠悠色av| 激情六月婷婷久久| 亚洲国产另类 国产精品国产免费| 亚洲国产色一区| 亚洲视频一二区| 欧美一级视频| 欧美成人在线影院| 亚洲另类黄色| 亚洲欧美日韩一区二区三区在线观看 | 国产日本欧洲亚洲| 狠狠色狠色综合曰曰| 亚洲国产视频一区| 夜夜夜久久久| 久久久亚洲精品一区二区三区| 久久美女性网| 亚洲欧洲日韩综合二区| 亚洲一区二区三区午夜| 久久国产精品一区二区三区| 欧美高潮视频| 国产美女高潮久久白浆| 亚洲国产一二三| 亚洲女优在线| 欧美高清在线视频| 亚洲一二三区视频在线观看| 久久精品伊人| 国产精品夫妻自拍| 亚洲国产日韩一区| 亚洲一区视频在线| 欧美a级理论片| 亚洲综合视频1区| 欧美激情成人在线视频| 国产一区久久久| 一区二区三区色| 麻豆精品精华液| 午夜精品视频在线| 欧美日韩国产电影| 亚洲承认在线| 久久九九精品99国产精品| 亚洲美女电影在线| 免费在线亚洲欧美| 国内精品一区二区三区|