1: //list12.cpp 3: #include <iostream> 4: #include <list> 5: #include <string> 6: using namespace std; 8: int main() 9: { 10: cout << "\nThis program illustrates the use of member functions " 11: "clear(),\nerase(), pop_back() and pop_front() for list " 12: "objects."; 13: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 15: int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 16: list<int> lst(a, a+10); 17: cout << "\nFor our starting list list we have ..."; 18: cout << "\nSize = " << lst.size(); 19: cout << "\nContents: "; 20: list<int>::iterator p = lst.begin(); 21: while (p != lst.end()) cout << *p++ << " "; 22: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 24: cout << "\nFirst, we delete the third component of the list, " 25: "\nand then display the remaining values in the list."; 26: list<int>::iterator pErase = lst.begin(); 27: for (int i=1; i<=2; i++) ++pErase; 28: list<int>::iterator pReturn = lst.erase(pErase); 29: cout << "\nSize = " << lst.size(); 30: cout << "\nContents: "; 31: p = lst.begin(); 32: while (p != lst.end()) cout << *p++ << " "; 33: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 34: cout << "\nThe iterator returned by the above call to erase() " 35: "points to " << *pReturn << ".\n"; 36: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 38: list<int>::iterator eraseBegin = lst.begin(); 39: list<int>::iterator eraseEnd = lst.begin(); 40: for (int i=1; i<=2; i++) ++eraseBegin; 41: for (int i=1; i<=7; i++) ++eraseEnd; 42: cout << "\nNext, we delete the 3rd through 7th components of " 43: "the list\nand then display the remaining values in the list."; 44: pReturn = lst.erase(eraseBegin, eraseEnd); 45: cout << "\nSize = " << lst.size(); 46: cout << "\nContents: "; 47: p = lst.begin(); 48: while (p != lst.end()) cout << *p++ << " "; 49: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 50: cout << "\nThe iterator returned by the above call to erase() " 51: "points to " << *eraseEnd << ".\n"; 52: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 54: cout << "\nNow we remove a value from the end of lst (using " 55: "lst.pop_back()),\nand display again to confirm."; 56: lst.pop_back(); 57: cout << "\nSize = " << lst.size(); 58: cout << "\nContents: "; 59: p = lst.begin(); 60: while (p != lst.end()) cout << *p++ << " "; 61: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 63: cout << "\nThen we remove a value from the front of lst (using " 64: "lst.pop_front()),\nand display again to confirm."; 65: lst.pop_front(); 66: cout << "\nSize = " << lst.size(); 67: cout << "\nContents: "; 68: p = lst.begin(); 69: while (p != lst.end()) cout << *p++ << " "; 70: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 72: cout << "\nFinally, we clear the list and display once again " 73: "to confirm:"; 74: lst.clear(); 75: cout << "\nSize = " << lst.size(); 76: cout << "\nContents: "; 77: p = lst.begin(); 78: while (p != lst.end()) cout << *p++ << " "; 79: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 80: }