書きやすさ・使いやすさ・応用性の高さから便利だよという紹介です。
#define in(v) v; cin >> v; int main() { int in(N); // int in(M); // int in(H); int in(W); rep(i, N) { int in(a); // cin >> A[i]; } return 0; }
解説
このin()
マクロを使うと、変数の定義と入力を受け取る部分が分離しません。
メリット: 変数名を変更するとき変える箇所が少ない
int N, M, K; cin >> N >> M >> K;
このようなテンプレートを使っているとき、N、MをそれぞれHとWに変えたくなったら4箇所も変えなければなりません。
int H, W, K; cin >> H >> W >> K;
しかし、in()
マクロなら2箇所で済みます。
int in(N); int in(M); int in(K); // これを直すと int in(H); int in(W); int in(K);
また、変数を増やすときもint in(N);
をコピペして変数名を直すだけなので、非常に楽です。
グローバル変数へ移しやすい
他にも、たとえば変数をグローバルへ移したくなったとき、このマクロならばint
をはずすだけで済みます。
int N; int main() { // int in(N); in(N); }