为什么我不应该#include <bits / stdc ++。h>?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我用我的代码发布了一个问题,其唯一#include指令如下:

#include <bits/stdc++.h>

我被告知我不应该这样做。

为什么?

提问于
用户回答回答于

我想像这样的好处是模糊的:

  • 你只需要写#include一行
  • 你不需要查询所有标准头文件

不幸的是,这是一个懒惰劈,命名GCC内部报头,而不是直接从个人标准头像<string><iostream><vector>。它破坏了可移植性并培养了可怕的习惯。

缺点包括:

  • 它可能只适用于该编译器
  • 你不知道它在使用它时会做什么,因为它的内容不是由标准设置的
  • 即使只是将编译器升级到自己的下一个版本,也可能会破坏程序
  • 每个标准头文件都必须与您的源代码一起解析和编译,速度慢,并且在某些编译设置下会导致庞大的可执行文件

不要这样做!

用户回答回答于

“为什么”?因为它使用它应该是一个C ++标准头,但没有标准提及它。所以你的代码根据定义是不可移植的。

扫码关注云+社区