2021/12/30

グリッド問題における4方向のベクトルのスマートな列挙


(普通の実装)

vector<long long> dx = {1, 0, -1, 0};

vector<long long> dy = {0, 1, 0, -1};

rep(i, 4) cout << dx[i] << " " << dy[i] << endl;

(出力)

1 0

0 1

-1 0

0 -1


この操作は、以下のように書き換えることができます。

(スマートな実装)

vector<long long> delta = {1, 0, -1, 0};

rep(i, 4) cout << delta[i] << " " << delta[i ^ 1] << endl;

(出力)

1 0

0 1

-1 0

0 -1


書き方オシャレだ。