title: iter_swap yields wrong result
body: <pre><code>#include &lt;iostream&gt;
  #include &lt;vector&gt;
  #include &lt;algorithm&gt;
  using namespace std;
  
  void myfunction(int i)
  {
      cout&lt;&lt;&quot; &quot;&lt;&lt;i;
  };
  
  void multiply(int a)
  {
      a*2;
  }
  
  int main()
  {
       int t[]={10,5,9,6,2,4,7,8,3,1};
      vector&lt;int&gt; v1(t,t+10);
      for_each(v1.begin(),v1.end(),multiply);
      iter_swap(v1.begin(), t+9);
      for_each(v1.begin(),v1.end(),myfunction);
      
      return 0;
  }
  </code></pre>
  <p>Hello, I actually have question about this code.<br>
  when I run this, I see the result is <strong>1 5 9 6 2 4 7 8 3 1</strong> and I am not sure why the last element is still 1 even though I assigned the statement <code>iter_swap(v1.begin(), t+9);</code> in the middle.</p>