目次
はじめに
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
を使った方がコードが簡潔になり、「ここでは値の交換を行っている」という意図が明確になります。