Source of vector12.cpp


  1: //vector12.cpp

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

  8: int main()
  9: {
 10:     cout << "\nThis program illustrates the use of member functions "
 11:         "\nclear(), erase(), and pop_back() for vector objects.";
 12:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 14:     int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 15:     vector<int> v(a, a+10);
 16:     cout << "\nFor v we have ...";
 17:     cout << "\nSize = " << v.size() << "  Capacity = " << v.capacity();
 18:     cout << "\nContents: ";
 19:     for(vector<int>::size_type i=0; i<v.size(); i++)
 20:         cout << v.at(i) << " ";
 21:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 23:     cout << "\nFirst, we delete the third component of v using this "
 24:         "call to erase():\np = v.erase(v.begin()+2);"
 25:         "\nand then display the remaining values in v.";
 26:     vector<int>::iterator p = v.erase(v.begin()+2);
 27:     cout << "\nSize = " << v.size() << "  Capacity = " << v.capacity();
 28:     cout << "\nContents: ";
 29:     for(vector<int>::size_type i=0; i<v.size(); i++)
 30:         cout << v.at(i) << " ";
 31:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');
 32:     cout << "\nThe iterator returned by the above call to erase() "
 33:         "points to " << *p << ".\n";
 34:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 36:     cout << "\nNext, we delete the 3rd through 7th components of v using "
 37:         "this call to erase():\np = v.erase(v.begin()+2, v.begin()+7);"
 38:         "\nand then display the remaining values in v.";
 39:     p = v.erase(v.begin()+2, v.begin()+7);
 40:     cout << "\nSize = " << v.size() << "  Capacity = " << v.capacity();
 41:     cout << "\nContents: ";
 42:     for(vector<int>::size_type i=0; i<v.size(); i++)
 43:         cout << v.at(i) << " ";
 44:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');
 45:     cout << "\nThe iterator returned by the above call to erase() "
 46:         "points to " << *p << ".\n";
 47:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 49:     cout << "\nNow we remove a component from the end of v (using "
 50:         "v.pop_back()),\nand display again to confirm.";
 51:     v.pop_back();
 52:     cout << "\nSize = " << v.size() << "  Capacity = " << v.capacity();
 53:     cout << "\nContents: ";
 54:     for(vector<int>::size_type i=0; i<v.size(); i++)
 55:         cout << v.at(i) << " ";
 56:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 58:     cout << "\nFinally, we clear v and display once again to confirm:";
 59:     v.clear();
 60:     cout << "\nSize = " << v.size() << "  Capacity = " << v.capacity();
 61:     cout << "\nContents: ";
 62:     for(vector<int>::size_type i=0; i<v.size(); i++)
 63:         cout << v.at(i) << " ";
 64:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');
 65: }