title: std::move behaves differently on vector::insert and push_back
body: <p>I noticed a difference in behavior between <code>vector::push_back</code> and <code>insert</code>.</p>
  
  <p>When I do</p>
  
  <pre><code>iter = myVector.begin() + 5;
  myVector.push_back(std::move(*iter));
  </code></pre>
  
  <p>The 6th element in the vector is added to the bottom and gets deleted from the previous position.</p>
  
  <p>Whereas, if I do this:</p>
  
  <pre><code>iterBegin = myVector.begin();
  myVector.insert(iterBegin,std::move(*(iterBegin + 5)));
  </code></pre>
  
  <p>The 6th element gets inserted in the first position, but it does not get deleted form the previous position.</p>
  
  <p>Why <code>std::move</code> does not work in <code>insert()</code> as in <code>push_back()</code>?</p>