iter_swap

iter_swap では二つのイテレータで指定した値を交換します。

iter_swap のサンプルコード

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {

  vector<char> v;
  vector<char>::iterator i;

  for (int j = 0; j < 20; j++) {
    v.push_back('a' + j);
  }

  i = v.begin();
  while (i != v.end()) {
    cout << *i;
    ++i;
  }
  cout << endl;

  iter_swap(v.begin(), --v.end());

  i = v.begin();
  while (i != v.end()) {
    cout << *i;
    ++i;
  }
  cout << endl;

  return 0;
}

元の文字列の並びと、iter_swap 後のシーケンスを表示すると次のようになりました。

./a.out
abcdefghijklmnopqrst
tbcdefghijklmnopqrsa

確かに v.begin() と --v.end() の値(先頭の a と最後尾の t)が交換されています。