 <p>This is, in fact, one of the principal reasons for using <code>reserve</code>. You are guaranteed that appending to the end of an <code>std::vector</code> will not invalidate iterators, references or pointers to elements in the vector as long as the new size of the vector does not exceed the old capacity.</p>