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,
If an exception is thrown other than by
the copy constructor, move constructor,
assignment operator, or move assignment operator of
or by any InputIterator
there are no effects.
If an exception is thrown while inserting a single element at the end and
, there are no effects.
Otherwise, if an exception is thrown by the move constructor of a non-Cpp17CopyInsertable
, the effects are unspecified.