It's interesting to consider what happens when you add a bunch of values to a vector. You probably know that it doesn't allocate new space for the items 1 at a time. That would be really inefficient. Instead it doesn't does* something like adding 50% more space when it needs it. You can see the extra space with the capacity() method.
When it allocates that (hypothetical) 50%, it does NOT create items in the new space. That would be inefficient. Instead, when you add a new item, it constructs the new item in the appropriate location in the buffer.
* Thank you seeplus for the PM reporting my blunder.