title: resize versus push_back in std::vector : does it avoid an unnecessary copy assignment?
body: <p>When invoking the method <code>push_back</code> from <code>std::vector</code>, its size is incremented by one, implying in the creation of a new instance, and then the parameter you pass will be copied into this recently created element, right? Example:</p>
  
  <pre><code>myVector.push_back(MyVectorElement());
  </code></pre>
  
  <p>Well then, if I want to increase the size of the vector with an element simply using its default values, wouldn't it be better to use the <code>resize</code> method instead? I mean like this:</p>
  
  <pre><code>myVector.resize(myVector.size() + 1);
  </code></pre>
  
  <p>As far as I can see, this would accomplish exactly the same thing but would avoid the totally unnecessary assignment copy of the attributes of the element. </p>
  
  <p>Is this reasoning correct or am I missing something?</p>