123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // setops.cpp -- some set operations
- #include <iostream>
- #include <string>
- #include <set>
- #include <algorithm>
- #include <iterator>
- 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<string> A(s1, s1 + N);
- set<string> B(s2, s2 + N);
- A.insert("buffalo");
- ostream_iterator<string, char> 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<string> C;
- cout << "Set C:\n";
- set_union(A.begin(), A.end(), B.begin(), B.end(),
- insert_iterator<set<string> >(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();
- cin.get();
- return 0;
- }
|