title: How do I replace data of some range of std::vector
body: <pre><code>std::vector&lt;char&gt; v;
  v.push_back('a');
  v.push_back('b');
  v.push_back('c');
  v.push_back('d');
  v.push_back('e');
  v.push_back('f');
  
  char c[3] = { 'z', 'x', 'y' };
  
  // Want to make abzxyf
  //v.insert(v.begin() + 2, c, c + 3); // it doesn't work as I wanted.
  
  // Yes it works. but if c is more bigger, it will be crash.
  std::copy(c, c + 3, v.begin() + 2);
  
  v.clear();
  v.push_back('a');
  v.push_back('b');
  v.push_back('c');
  v.push_back('d');
  v.push_back('e');
  v.push_back('f');
  
  // If vector needs more memory, I'd let him grow automactically
  // So I tried this.(expected abcdezxy)
  // But it's result is abcdezxyf. f is still remain.
  std::copy(c, c + 3, std::inserter(v, v.begin() + 5));
  </code></pre>
  
  <p>What algorithm or method should I use?</p>