Source of list01.cpp


  1: //list01.cpp

  3: #include <iostream>
  4: #include <string>
  5: #include <list>
  6: using namespace std;

  8: int main()
  9: {
 10:     cout << "\nThis program illustrates all of the STL list container "
 11:     "class constructors, as\nwell as the default list iterator and the "
 12:     "member functions begin() and end().\nIt also shows how ordinary "
 13:     "pointers can be used, in certain situations, in the\nsame way that "
 14:     "STL iterators are used.";
 15:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 17:     //Create an empty list
 18:     list<int> lst1;
 19:     cout << "\nContents of lst1: ";
 20:     list<int>::iterator p_i = lst1.begin();
 21:     while (p_i != lst1.end()) cout << *p_i++ << " ";
 22:     cout << endl;
 23:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 25:     //Create a list filled with the default component-type value
 26:     list<int> lst2(5);
 27:     cout << "\nContents of lst2: ";
 28:     p_i = lst2.begin();
 29:     while (p_i != lst2.end()) cout << *p_i++ << " ";
 30:     cout << endl;
 31:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 33:     //Create a list filled with a specific component-type value
 34:     list<double> lst3(4, 3.14);
 35:     cout << "\nContents of lst3: ";
 36:     list<double>::iterator p_d = lst3.begin();
 37:     while (p_d != lst3.end()) cout << *p_d++ << " ";
 38:     cout << endl;
 39:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 41:     //Create a list using pointers to an integer array
 42:     int a[] = {2, 4, 6, 8, 10, 12};
 43:     list<int> lst4(a, a + sizeof(a)/sizeof(int));
 44:     cout << "\nContents of lst4: ";
 45:     p_i = lst4.begin();
 46:     while (p_i != lst4.end()) cout << *p_i++ << " ";
 47:     cout << endl;
 48:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 50:     //Create a list using pointers to a C-string
 51:     char s[] = "Hello";
 52:     list<char> lst5(s, s + strlen(s));
 53:     cout << "\nContents of lst5: ";
 54:     list<char>::iterator p_c = lst5.begin();
 55:     while (p_c != lst5.end()) cout << *p_c++ << " ";
 56:     cout << endl;
 57:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 59:     //Create a new list as a copy of an existing list
 60:     list<double> lst6(lst3); //or list<double> lst6 = d3;
 61:     cout << "\nContents of lst6 same as those of lst3: ";
 62:     p_d = lst6.begin();
 63:     while (p_d != lst6.end()) cout << *p_d++ << " ";
 64:     cout << endl;
 65:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');
 66: }