// Illustrating the generic set operations #include #include #include #include using namespace std; template Container make(const char s[]) { return Container(&s[0], &s[strlen(s)]); } int main() { cout << "Illustrating the generic set operations." << endl; bool result; vector vector1 = make< vector >("abcde"), vector2 = make< vector >("aeiou"); // Illustrate includes: result = includes(vector1.begin(), vector1.end(), vector2.begin(), vector2.end()); assert (result == false); result = includes(vector1.begin(), vector1.end(), vector2.begin(), vector2.begin() + 2); // 'a' and 'e' are contained in vector1 assert (result == true); // Illustrate set_union: vector setUnion; set_union(vector1.begin(), vector1.end(), vector2.begin(), vector2.end(), back_inserter(setUnion)); assert (setUnion == make< vector >("abcdeiou")); // Illustrate set_intersection: vector setIntersection; set_intersection(vector1.begin(), vector1.end(), vector2.begin(), vector2.end(), back_inserter(setIntersection)); assert (setIntersection == make< vector >("ae")); // Illustrate set_symmetric_difference: vector setDifference; set_symmetric_difference(vector1.begin(), vector1.end(), vector2.begin(), vector2.end(), back_inserter(setDifference)); assert (setDifference == make< vector >("bcdiou")); cout << " --- Ok." << endl; return 0; }