STLにSet_Unionを実装するC++プログラム
2つのセットの和集合は、セットの1つまたは両方に存在する要素によって作成されます。最初のセットと同じ要素を持つ2番目のセットの要素は、結果のセットにコピーされません。
一般的な集合演算は-
です- セットユニオン
- 交差点を設定
- 対称集合の差または排他的論理和
- 差または減算を設定
アルゴリズム
Begin Declare set vector v and iterator st. Initialize st= set_union (set1, set1 + n, set2, set2 +n, v.begin())) Print the elements. End.
サンプルコード
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main () {
int set1[] = {5,6,7,8,9,10};
int set2[] = {1,2,3,4,6,7};
vector<int> v(10);
vector<int>::iterator st;
sort (set1, set1 + 6);
sort (set2, set2 + 6);
st = set_union(set1, set1 + 6, set2, set2 + 6, v.begin());
v.resize(st - v.begin());
cout<<"The union between the sets has "<< (v.size())<< " elements: "<<endl;
for (st = v.begin(); st != v.end(); ++st)
cout<< *st<<" ";
cout <<endl;
return 0;
} 出力
The union between the sets has 10 elements: 1 2 3 4 5 6 7 8 9 10
-
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,