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,