私は次のような指示のみを含むコードを投稿しました#include
:
#include <bits/stdc++.h>
先生は私にこうするように言いましたが、コメント欄にはそうすべきではないと書かれていました。
なぜ?
ベストアンサー1
インクルードは<bits/stdc++.h>
Stack Overflow でますます一般的に見られるようになってきているようですが、おそらく今年度の国家カリキュラムに新たに追加されたものなのでしょう。
利点は大まかに次のように説明されると思います。
- 1行だけ書く必要があります
#include
。 - すべての内容がどの標準ヘッダーに含まれているかを調べる必要はありません。
残念ながら、これは、、、などの個別の標準ヘッダーの代わりに GCC 内部ヘッダーを直接指定する怠惰なハックです<string>
。これにより移植性が損なわれ、悪い習慣が促進されます。<iostream>
<vector>
欠点は次のとおりです。
- おそらくそのコンパイラでのみ動作するでしょう。
- 内容が標準で設定されていないため、使用時に何が起こるかはわかりません。
- コンパイラを次のバージョンにアップグレードするだけでも、プログラムが壊れる可能性があります。
- すべての標準ヘッダーをソース コードとともに解析してコンパイルする必要があるため、処理速度が遅くなり、特定のコンパイル設定では実行可能ファイルが大きくなります。
やめてください!
詳しくは:
- Visual Studio で #include <bits/stdc++.h> を実行するとコンパイルされない
- C++ では #include <bits/stdc++.h> はどのように機能しますか?
Quora が悪い理由の例: