1: //set12.cpp 3: #include <iostream> 4: #include <string> 5: #include <set> 6: using namespace std; 8: int main() 9: { 10: cout << "\nThis program illustrates the clear() and erase() member " 11: "functions\nof the set interface."; 12: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 14: //Create an array of names 15: string a[] = 16: { 17: "Alice", 18: "Bob", 19: "Carl", 20: "Dick", 21: "Eve", 22: "Fred", 23: "George", 24: "Harry", 25: "Ian", 26: "Jack" 27: }; 28: cout << "\nWe begin with a set containing the following names:\n"; 29: set<string> s(a, a+10); 30: set<string>::iterator p = s.begin(); 31: while (p != s.end()) cout << *p++ << endl; 32: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 34: cout << "\nThen we delete George."; 35: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 37: set<string>::size_type numberDeleted = s.erase("George"); 38: cout << "\nThe number of deletions was " << numberDeleted << "."; 39: cout << "\nAnd here are the remaining contents of the set:\n"; 40: p = s.begin(); 41: while (p != s.end()) cout << *p++ << endl; 42: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 44: cout << "\nNext we delete William."; 45: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 47: numberDeleted = s.erase("William"); 48: cout << "\nThe number of deletions was " << numberDeleted << "."; 49: cout << "\nAnd here are the remaining contents of the set:\n"; 50: p = s.begin(); 51: while (p != s.end()) cout << *p++ << endl; 52: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 54: cout << "\nNow we delete the first name in the set, using an iterator " 55: "for access."; 56: s.erase(s.begin()); 57: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 58: cout << "\nThe remaining names in the set are now these:\n"; 59: p = s.begin(); 60: while (p != s.end()) cout << *p++ << endl; 61: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 63: cout << "\nFor our final deletion before clearing all the remaining " 64: "\npairs, we delete everyone in the \"range\" from Carl to Ian."; 65: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 67: s.erase(s.find("Carl"), s.find("Ian")); 68: cout << "\nAfter deleting this range of names, the remaining names " 69: "in the set are:\n"; 70: p = s.begin(); 71: while (p != s.end()) cout << *p++ << endl; 72: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 74: cout << "\nFinally, we clear all remaining values from the set."; 75: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 77: s.clear(); 78: if (s.empty()) cout << "\nThe set is now empty."; 79: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 80: }