Does std::vector::insert reserve by definition?
<p>When calling the <code>insert</code> member function on a <code>std::vector</code>, will it <code>reserve</code> before "pushing back" the new items? I mean does the standard guarantee that or not?</p>

<p>In other words, should I do it like this:</p>

<pre><code>std::vector&lt;int&gt; a{1,2,3,4,5};
std::vector&lt;int&gt; b{6,7,8,9,10};
a.insert(a.end(),b.begin(),b.end());
</code></pre>

<p>or like this:</p>

<pre><code>std::vector&lt;int&gt; a{1,2,3,4,5};
std::vector&lt;int&gt; b{6,7,8,9,10};
a.reserve(a.size()+b.size());
a.insert(a.end(),b.begin(),b.end());
</code></pre>

<p>or another better approach?</p>