1: //set02.cpp 3: #include <iostream> 4: #include <set> 5: using namespace std; 7: int main() 8: { 9: cout << "\nThis program illustrates the set copy constructor and " 10: "the overloaded assignment\noperator for sets, as well as the " 11: "default constructor for the set class, and\nthe empty() member " 12: "function."; 13: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 15: cout << "\nWe begin by creating an array of 10 positive integers, " 16: "and\nthen we create a first set containing the same values."; 17: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 18: int a[] = {7, 4, 9, 1, 3, 8, 2, 5, 6, 10}; 19: set<int> s1(a, a+10); 21: cout << "\nThe size of the set is " << s1.size() << "."; 22: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 24: cout << "\nHere are the values in the set:\n"; 25: set<int>::iterator p = s1.begin(); 26: while (p != s1.end()) cout << *p++ << " "; 27: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 29: cout << "\nNext we make a copy of this set."; 30: set<int> s2(s1); 31: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 33: cout << "\nHere are the values in the copy:\n"; 34: p = s2.begin(); 35: while (p != s2.end()) cout << *p++ << " "; 36: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 38: cout << "\nNow we create a third set using the default constructor."; 39: set<int> s3; 40: if (s3.empty()) cout << "\nThis set is empty."; 41: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 43: cout << "\nFinally we assign the first set to this third set."; 44: s3 = s1; 45: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 47: cout << "\nHere are the values in this third set now:\n"; 48: p = s3.begin(); 49: while (p != s3.end()) cout << *p++ << " "; 50: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 51: }