swap
二つの vector の中身を入れ替える方法です。
swap を利用します。
swap のサンプルコード
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<char> v1, v2;
vector<char>::iterator i;
// データの作成
for (int j = 0; j < 20; j++) {
v1.push_back('a' + j);
}
for (int j = 0; j < 10; j++) {
v2.push_back('A' + j);
}
// サイズと中身のダンプ
cout << "v1 (size:" << v1.size() << ") ";
i = v1.begin();
while (i != v1.end()) {
cout << *i;
++i;
}
cout << endl;
cout << "v2 (size:" << v2.size() << ") ";
i = v2.begin();
while (i != v2.end()) {
cout << *i;
++i;
}
cout << endl;
swap(v1, v2);
// サイズと中身のダンプ
cout << "v1 (size:" << v1.size() << ") ";
i = v1.begin();
while (i != v1.end()) {
cout << *i;
++i;
}
cout << endl;
cout << "v2 (size:" << v2.size() << ") ";
i = v2.begin();
while (i != v2.end()) {
cout << *i;
++i;
}
cout << endl;
return 0;
}
実行結果は次の通り。
./a.out
v1 (size:20) abcdefghijklmnopqrst
v2 (size:10) ABCDEFGHIJ
v1 (size:10) ABCDEFGHIJ
v2 (size:20) abcdefghijklmnopqrst
もともとサイズがそれぞれ 20, 10 であるベクタ v1, v2 に対して swap を利用することで、 それぞれの内容が交換されたことがわかります。