// setops.cpp -- some set operations #include #include #include #include #include int main() { using namespace std; const int N = 6; string s1[N] = {"buffoon", "thinkers", "for", "heavy", "can", "for"}; string s2[N] = {"metal", "any", "food", "elegant", "deliver","for"}; set A(s1, s1 + N); set B(s2, s2 + N); ostream_iterator out(cout, " "); cout << "Set A: "; copy(A.begin(), A.end(), out); cout << endl; cout << "Set B: "; copy(B.begin(), B.end(), out); cout << endl; cout << "Union of A and B:\n"; set_union(A.begin(), A.end(), B.begin(), B.end(), out); cout << endl; cout << "Intersection of A and B:\n"; set_intersection(A.begin(), A.end(), B.begin(), B.end(), out); cout << endl; cout << "Difference of A and B:\n"; set_difference(A.begin(), A.end(), B.begin(), B.end(), out); cout << endl; set C; cout << "Set C:\n"; set_union(A.begin(), A.end(), B.begin(), B.end(), insert_iterator >(C, C.begin())); copy(C.begin(), C.end(), out); cout << endl; string s3("grungy"); C.insert(s3); cout << "Set C after insertion:\n"; copy(C.begin(), C.end(),out); cout << endl; cout << "Showing a range:\n"; copy(C.lower_bound("ghost"),C.upper_bound("spook"), out); cout << endl; // cin.get(); return 0; }