如何一次包含所有的 C++ 标准库?

How to include all of the C++ Standard Library at once?

我正在使用向量和链表进行 class 项目。但是在 C++ 中,为了应用它们,我需要在 header.

中包含以下代码
#include<list>
#include<vector>

我知道这两个都是标准模板库的一部分。所以我想做一个

#include<StandardTemplateLibrary>

节省台词。但是我到处都看不到要添加到我的代码中的单一命令,我已经尝试了 cstdlib、stdlib、cstdlib.h 和 none,其中包含我需要的关键字。

是否有一个单一的预处理器可以添加到我的项目中来完成这两项工作?还是我只需要包括两者?如果您也可以推荐我阅读源代码,将不胜感激。

Is there a singular preprocessor that I can add to my project to do both of these? Or do I just have to include both?

不,没有,这是故意的。标准库实现应该对实现的组件具有最小的相互依赖性。

您应该始终为您显式使用的 std 组件指定 #include 语句。


不要被臭名昭著的.

骗了

包括大量未使用的 headers 将大大增加构建时间!仅添加需要的文件

您可以简单地为自己创建一个经常包含的预编译头文件以加快构建速度。上个世纪很流行。

See this Wikipedia article on the subject.

在某些编译器上,包括 <bits/stdc++.h> 可能会满足您的需求。

但是请注意,它会使您的代码不可移植(它可能不适用于其他编译器,甚至同一编译器的不同版本)。这在某些情况下没问题。

有关为什么这样做可能不是一个好主意的更多信息:

您可以使用:

#include<bits/stdc++.h> 

甚至每个人都建议。但它不是标准的头文件。 它的缺点是

  • 增加编译时间。(因为它包含了所有的头文件)
  • 使用 GNU C++ 库的内部非标准头文件,因此无法在 MSVC、XCode 和许多其他编译器中编译

你可以试试:

#ifndef ALL_H_FILES
#define ALL_H_FILES

#include <iostream>
#include <vector>
#include <list>
//include other libraries

#endif

在你的主文件中,你可以:#include "ALL_H_FILES.h"