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