1 #include <iostream> 2 #include <algorithm> 3 #include <vector> 4 #include <iterator> 5 using namespace std; 6 7 int main() 8 { 9 int array1[] = {1, 2, 3, 4, 5, 6, 7, 8}; 10 int array2[] = {1, 3, 6, 9, 12}; 11 vector<int> intVector(15); 12 13 ostream_iterator<int> output(cout, " "); 14 cout << "array1: "; 15 copy(array1, array1 + 8, output); 16 cout << "\narray2: "; 17 copy(array2, array2 + 5, output); 18 19 bool isContained = 20 includes(array1, array1 + 8, array2, array2 + 3); 21 cout << (isContained ? "\n{1, 3, 6} is a subset of array1" : 22 "\n{1, 3, 6} is not a subset of array1"); 23 24 vector<int>::iterator last = set_union(array1, array1 + 8, 25 array2, array2 + 5, intVector.begin()); 26 cout << "\nAfter union, intVector: "; 27 copy(intVector.begin(), last, output); 28 29 last = set_difference(array1, array1 + 8, 30 array2, array2 + 5, intVector.begin()); 31 cout << "\nAfter difference, intVector: "; 32 copy(intVector.begin(), last, output); 33 34 last = set_intersection(array1, array1 + 8, 35 array2, array2 + 5, intVector.begin()); 36 cout << "\nAfter intersection, intVector: "; 37 copy(intVector.begin(), last, output); 38 39 last = set_symmetric_difference(array1, array1 + 8, 40 array2, array2 + 5, intVector.begin()); 41 cout << "\nAfter symmetric difference, intVector: "; 42 copy(intVector.begin(), last, output); 43 44 return 0; 45 }