目次
はじめに
C++で、2つの変数 a と b の中身を入れ替えたい場合、一時的な変数 temp を使って、
temp = a;
a = b;
b = temp;
と書くのが基本的な考え方です。しかし、この定型的な処理のために、C++の標準ライブラリ <algorithm> には、より簡潔で意図が明確な std::swap という便利な関数が用意されています。
この記事では、swap関数の基本的な使い方を解説します。
swap を使ったサンプルコード
このコードは、2つの整数変数の値を swap を使って入れ替え、その前後で値が変化することを示します。
完成コード
#include <iostream>
#include <algorithm> // std::swap を使うために必要
using namespace std;
int main() {
int x = 100;
int y = 200;
cout << "--- 交換前 ---" << endl;
cout << "x = " << x << ", y = " << y << endl;
// std::swapで変数xとyの値を入れ替える
swap(x, y);
cout << "\n--- 交換後 ---" << endl;
cout << "x = " << x << ", y = " << y << endl;
return 0;
}
実行結果
--- 交換前 ---
x = 100, y = 200
--- 交換後 ---
x = 200, y = 100
コードの解説
swap(x, y);
- 機能: 引数として渡された2つの変数
xとyの値を、効率的に入れ替えます。 - 引数の型:
intのような基本型だけでなく、std::stringや自作のクラスオブジェクトなど、コピーやムーブが可能なあらゆる型の変数を入れ替えることができます。 - 仕組み:
swapは内部的に参照を使って変数を操作するため、関数呼び出し後、元の変数xとyの値が直接書き換えられます。
まとめ
今回は、C++の<algorithm>ライブラリを使って、2つの変数の値を入れ替えるstd::swap関数を解説しました。
<algorithm>ヘッダーをインクルードする。swap(変数1, 変数2)の形で呼び出す。
自前で一時変数を使って実装するよりも、swapを使った方がコードが簡潔になり、「ここでは値の交換を行っている」という意図が明確になります。
