整数型変数の中身の交換
多分競プロerでは常識なんだろうけど。 でも自分は初めてしったのでメモしておきます。
例えば
int a = 15; int b = 32;
みたいな変数があって変数の中身を交換したいと。つまりaを32、bを15にするということです。
このようなとき、自分は今までこのような処理を行っていました。
int a = 15; int b = 32; int tmp = a; a = b; b = tmp;
しかしXORを用いるとこのような処理によっても同じ操作ができます。
int a = 15; int b = 32; a ^= b; b ^= a; a ^= b;
これでゴミ変数を作らなくて済みます。
が、可読性の観点からゴミ変数作ったほうがいい気がします……。しかも実行速度も早くなるわけではなさそうです………。 結局は個人の好みでしょうか。