swap,iter_swap,及び,swap_ranges の使用方法です.
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1, v2;
vector<int>::iterator it;
// 初期設定
printf("**初期状態** v1\n");
for (int i1 = 0; i1 < 5; i1++)
v1.push_back(i1+1);
for (it = v1.begin(); it != v1.end(); it++)
printf(" %d", *it);
printf("\n");
printf("**初期状態** v2\n");
for (int i1 = 0; i1 < 5; i1++)
v2.push_back(10*(i1+1));
for (it = v2.begin(); it != v2.end(); it++)
printf(" %d", *it);
printf("\n");
// 2 番目と 3 番目の要素を交換する
printf("2 番目と 3 番目の要素を交換する\n");
swap(*(v1.begin()+1), *(v1.begin()+2));
for (it = v1.begin(); it != v1.end(); it++)
printf(" %d", *it);
printf("\n");
// 4 番目と 5 番目の要素を交換する
printf("4 番目と 5 番目の要素を交換する\n");
iter_swap(v1.begin()+3, v1.begin()+4);
for (it = v1.begin(); it != v1.end(); it++)
printf(" %d", *it);
printf("\n");
// v1 と v2 を交換する
printf("v1 と v2 を交換する\n");
swap_ranges(v1.begin(), v1.end(), v2.begin());
printf(" v1");
for (it = v1.begin(); it != v1.end(); it++)
printf(" %d", *it);
printf("\n");
printf(" v2");
for (it = v2.begin(); it != v2.end(); it++)
printf(" %d", *it);
printf("\n");
return 0;
}
(出力)
**初期状態** v1
1 2 3 4 5
**初期状態** v2
10 20 30 40 50
2 番目と 3 番目の要素を交換する
1 3 2 4 5
4 番目と 5 番目の要素を交換する
1 3 2 5 4
v1 と v2 を交換する
v1 10 20 30 40 50
v2 1 3 2 5 4