I just starting to learning vectors and little confused about size()
and capacity()
I know little about both of them. But why in this program both are different? even array(10)
is making room for 10 elements and initializing with 0.
Before adding array.push_back(5)
So array.size();
is 10 that is ok.
So array.capacity();
is 10 that is ok.
After adding array.push_back(5)
So array.size();
is 11 that is ok (already 10 time 0 is added and then push_back add one more element 5 )
.
So array.capacity();
is 15 Why? ( is it reserving 5 blocks for one int? )
.
#include <iostream>
#include <vector>
int main(){
std::vector<int> array(10); // make room for 10 elements and initialize with 0
array.reserve(10); // make room for 10 elements
array.push_back(5);
std::cout << array.size() << std::endl;
std::cout << array.capacity() << std::endl;
return 0;
}