C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でSTLを使用して操作をマージする| merge()、includes()、set_union()、set_intersection()、set_difference()、inplace_merge


このチュートリアルでは、C++でSTLを使用してさまざまなマージ操作を理解するためのプログラムについて説明します。

merge()関数は、新しいコンテナーもソートされるように、2つのソートされたコンテナーをマージするために使用されます。さらに、includes()を使用して、最初のコンテナの要素が2番目のコンテナに存在するかどうかを確認します。

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
   vector<int> v1 = {1, 3, 4, 5, 20, 30};
   vector<int> v2 = {1, 5, 6, 7, 25, 30};
   //initializing resultant vector
   vector<int> v3(12);
   merge(v1.begin(), v1.end(), v2.begin(),
   v2.end(), v3.begin());
   cout << "The new container after merging is :\n";
   for (int &x : v3)
      cout << x << " ";
   cout << endl;
   vector<int> v4 = {1, 3, 4, 5, 6, 20, 25, 30};
   includes(v4.begin(), v4.end(), v1.begin(), v1.end())?
      cout << "v4 includes v1":
      cout << "v4 does'nt include v1";
   return 0;
}

出力

The new container after merging is :
1 1 3 4 5 5 6 7 20 25 30 30
v4 includes v1

  1. STLにSet_Intersectionを実装するC++プログラム

    2つのセットの共通部分は、両方のセットに共通する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin    Declare set vector v and iterator st.    Initialize st = set_intersection (set1, set1 + n, set2, s

  2. STLにSet_Differenceを実装するC++プログラム

    2つのセットの違いは、2番目のセットではなく、最初のセットに存在する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin    Declare set vector v and iterator st.    Initialize st = set_difference (set1, set1 + n,