Namareba食べたい

備忘録てきなもの。だらだら書いていきます。

変態スワップ

はてぶで見つけたので備忘録として///

XORswap(値の交換)

ある変数aとbの値を交換したい場合に、一時変数を用意することなしにxor演算だけで交換できます。

実装
#include <iostream>

void swap(int& a, int& b){
  b ^= a; a ^= b; b ^= a;
}

int main(){
  int a = 1, b = 2;
  swap(a, b);

  std::cout << a << " " << b << std::endl;
  
  return 0;
}

 

参考