Why is this statement:
cout << values[0] << " " << values[1] << " " << values[2] << endl;
Showing
1 2 3
Even though pop back was used to remove the last element from the vector. Shouldn't the values be removed too? Or does the vector resize even though the element is removed?
Here is the sample code:
// This program demonstrates the vector pop_back member function.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> values;
// Store values in the vector.
values.push_back(1); // Last element in values is 1
values.push_back(2); // Now elements in values are 1,2
values.push_back(3); // Now elements in values are 1,2,3
cout << "The size of values is " << values.size() << endl; // values has 3 elements
// Remove a value from the vector.
cout << "Popping a value from the vector...\n";
values.pop_back();
cout << "The size of values is now " << values.size() << endl; // 1 is Removed thus size is 2
cout << values[0] << " " << values[1] << " " << values[2] << endl;
// Now remove another value from the vector.
cout << "Popping a value from the vector...\n";
values.pop_back();
cout << "The size of values is now " << values.size() << endl;
cout << values[0] << " " << values[1] << " " << values[2] << endl;
// Remove the last value from the vector.
cout << "Popping a value from the vector...\n";
values.pop_back();
cout << "The size of values is now " << values.size() << endl;
cout << values[0] << " " << values[1] << " " << values[2] << endl;
return 0;
}