秋田大学ICPC対策室@wiki

値の交換

最終更新:

akitaicpc

- view
メンバー限定 登録/ログイン

値の交換


変数aとbがあったとき、この2つの値を交換したいときがあると思います。
そういう時はswap()関数を使います。<algorithm>ヘッダをインクルードすると使えるので
覚えておきましょう。
例)
#include <algorithm>
using namespace std;

int main(){
    int a=3, b=5;
    cout << "a" << a << " b:" << b << endl;
    swap( a , b );
    cout << "a" << a << " b:" << b << endl;
}

しかし、自分でswap関数を作りたい人もいるかもしれません。
例えば次のようにすると値を交換できる関数が作れます。
void swap(int a , int b){
    int t=a;
    a = b;
    b = t;
}
値を交換するときは次の方法ではできません
a = b; b = a;
初心者がよくやる間違いですので気を付けましょう。

ほかにもXOR(演算記号は^)を使った方法があります。
swap(int a,int b){
    a ^= b;
    b ^= a;
    a ^= b;
}
この方法だと余分な変数tを使わずに交換できますが、aとbが同一の変数の場合にうまくいかないので注意が必要です。

















...
目安箱バナー