我用我的代码发布了一个问题,其唯一的 #include
指令如下:
#include <bits/stdc++.h>
我的老师告诉我这样做,但在评论部分我被告知我不应该这样做。
为什么?
最佳答案
包括<bits/stdc++.h>
在 Stack Overflow 上似乎越来越常见,也许是本学年新添加到国家类(class)中的内容。
我想这些优势是这样模糊地给出的:
- 你只需要写一个
#include
行。 - 您无需查找所有内容都在哪个标准标题中。
不幸的是,这是一个懒惰的 hack,直接命名 GCC 内部 header 而不是像 <string>
这样的单个标准 header , <iostream>
和 <vector>
.它破坏了便携性并养成了糟糕的习惯。
缺点包括:
- 它可能只适用于那个编译器。
- 你不知道使用它时它会做什么,因为它的内容不是由标准设定的。
- 即使只是将您的编译器升级到它自己的下一个版本也可能会破坏您的程序。
- 每个标准头都必须与源代码一起解析和编译,这很慢,并且在某些编译设置下会导致可执行文件庞大。
不要这样做!
更多信息:
- #include <bits/stdc++.h> with visual studio does not compile
- How does #include <bits/stdc++.h> work in C++?
Quora 不好的例子:
关于c++ - 为什么我不应该#include <bits/stdc++.h>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31816095/