#include <bits/stdc ++.h> with visual studio无法编译

4 c++ visual-studio

我最近看到#include <bits/stdc++.h>包括每个标准库和stl包含文件.当我尝试使用visual studio 2013编译以下代码段时,它给出了一个error C1083: Cannot open include file: 'bits/stdc++.h': No such file or directory.但它与codeblocks完美搭配.有什么办法可以避免这个错误吗?

#include <bits/stdc++.h>

using namespace std;

int main()
{

}   
Run Code Online (Sandbox Code Playgroud)

我在一些帖子中看到'头文件不是C++标准的一部分,因此是不可移植的',应该避免'.但我认为它在比赛编程中很有用.

Wyz*_*a-- 22

有什么办法可以避免这个错误吗?

是:不要使用仅由GCC提供的非标准头文件,而不是Microsoft的编译器.

C++标准要求每个编译器提供许多标头,例如<iostream><string>.但是特定编译器对这些头的实现可能依赖于该编译器附带的其他非标准头,并且<bits/stdc++.h>就是其中之一.

将标准头(例如<iostream>)视为"公共"接口,将编译器特定的东西(如所有内容bits/)视为"私有"实现.如果您希望程序可以移植到其他编译器 - 或者甚至是同一编译器的未来版本,则不应该依赖编译器特定的实现细节.

如果你想要一个包含所有标准标题的标题,那么编写自己的标题很容易.


小智 18

要在 Visual Studio 中使用bits/stdc++.h预处理器,您需要stdc++.h从下面给出的链接下载该文件。

  • 从以下链接下载文件:https://mega.nz/file/feIXkY7a#ECkj1bZKA-72dYzatuKsgBQJ4lMe0v81sfxuhyKCNk0
  • 在以下目录中创建bits文件夹:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include
  • 在某些情况下,该文件夹C:\Program Files (x86)\Microsoft Visual Studio\2019\可能是空的。在这种情况下,请转到 VS Code 并#include <在顶部键入。您将获得自动完成建议。与每个建议一起,每个建议的路径都应该可见。复制路径并将其粘贴到文件资源管理器中。该路径会将您带入include上述同一文件夹中。
  • 创建一个具有名称的新目录bits并将 stdc++.h 文件粘贴到该bits文件夹​​中。
  • 如果 Visual Studio 正在运行,请重新启动并使用它

  • 请避免使用 mega 等网站的外部链接。它们可能会在不久的将来被打破。 (11认同)
  • 以下是直接指向 GCC 源代码中感兴趣的文件的链接:https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/precompiled/stdc%2B% 2B.h 正如@JérômeRichard 所预测的,答案中的链接已经失效。 (5认同)

iva*_*ukr 6

这是非标准头文件,已知它是 libstdc++ 的一部分,通常随 GCC 一起提供。然而VS附带了微软自己的STL实现,它不包含这样的文件。我建议停止使用它,而是包含必要的标准标头,例如<iostream><vector><string><algorithm>