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)が交換されています。