先頭へ戻る

変数の値を交換する | Programming Place Plus C++編 逆引き

Programming Place Plus トップページ -- C++編 -- 逆引き

先頭へ戻る

C++編で扱っている C++ は 2003年に登場した C++03 という、とても古いバージョンのものです。C++ はその後、C++11 -> C++14 -> C++17 と更新され、2020年度中に C++20 が登場します(その後も 3年ごとに更新されます)。
なかでも C++11 での機能強化は強力なものです。これから C++ を始めるのなら、C++11 よりも古いバージョンを対象にする意味はありません。できるだけ新しいコンパイラを使い、対応されている範囲でできるだけ新しい C++ を使いましょう。
残念ながら 2019年末現在、当サイトで C++11 以降を網羅的に解説するコンテンツがありませんが、2020年から、C++14 をベースにした新C++編を始めました。

目的

2つの型が同じ変数があるとき、両者の値を入れ替えたいとします。たとえば、以下のように2つの変数があるとき、

int x = 5;
int y = 10;

変数x の値が 10、変数y の値が 5 になるようにします。

方法①(std::swap関数を使う)[C++03~]

C++ の標準ライブラリには、値の交換を行う std::swap関数(【標準ライブラリ】第15章)があるので、これを使います。C++03 までは <algorithm>、C++11 以降は <utility> という名前の標準ヘッダをインクルードしてください。

#include <algorithm>  // C++11以降は <utility>
#include <iostream>

int main()
{
    int x = 5;
    int y = 10;

    std::swap(x, y);
    std::cout << "x == " << x << "\n"
              << "y == " << y << std::endl;
}

実行結果:

x == 10
y == 5

std::swap関数の引数は参照なので、&演算子を用いる必要はありません。

C++ では C言語の手法も使えますが、std::swap関数以外の方法を使う意味は無いです。


参考リンク


更新履歴

'2017/5/27 新規作成。



逆引きのトップページへ

C++編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー