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;
}

```