Remarks: Causes reallocation if the new size is greater than the old capacity
.  Reallocation invalidates all the references, pointers, and iterators
referring to the elements in the sequence, as well as the past-the-end iterator
.If no reallocation happens, then
references, pointers, and iterators
before the insertion point remain valid
but those at or after the insertion point,
including the past-the-end iterator,
are invalidated
.If an exception is thrown other than by
the copy constructor, move constructor,
assignment operator, or move assignment operator of
T or by any 
InputIterator operation
there are no effects
.If an exception is thrown while inserting a single element at the end and
T is 
Cpp17CopyInsertable or 
is_nothrow_move_constructible_v<T>
is 
true, there are no effects
.Otherwise, if an exception is thrown by the move constructor of a non-
Cpp17CopyInsertable
T, the effects are unspecified
.