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

时间:2016-04-21 06:50:01

标签: c++ templates c++-standard-library

我正在使用矢量和链接列表开发一个类项目。但是在C ++中为了应用它们,我需要在标题中包含以下代码。

#include<list>
#include<vector>

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

#include<StandardTemplateLibrary>

保存线条。但在我看的每个地方,我都没有看到添加到我的代码的单一命令,我尝试过cstdlib,stdlib,cstdlib.h,但它们都没有包含我需要的关键字。

我是否可以在项目中添加一个单独的预处理器来执行这两个操作?或者我只需要包括两者?如果你能引用我的来源阅读,那将非常感激。

6 个答案:

答案 0 :(得分:5)

在某些编译器上,包括<bits/stdc++.h>可能会执行您正在寻找的内容。

但请注意,它会使您的代码不可移植(它可能无法在其他编译器上运行,甚至不能在同一编译器的不同版本上运行)。在某些情况下这是可以的。

有关为何这样做可能不是一个好主意的更多信息:Why should I not #include <bits/stdc++.h>?

答案 1 :(得分:4)

  

我是否可以在项目中添加一个单独的预处理器来执行这两个操作?或者我只需要包括两者?

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

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

不要被臭名昭着的#include <bits/stdc++.h>欺骗。

答案 2 :(得分:3)

包含大量未使用的标头会大大增加构建时间!仅添加所需文件

答案 3 :(得分:1)

您可以简单地为自己创建一个预编译的头文件,以便加速构建。这是上个千年的流行。

See this Wikipedia article on the subject

答案 4 :(得分:1)

您可以使用:

#include<bits/stdc++.h> 

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

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

答案 5 :(得分:0)

您可以尝试:

#ifndef ALL_H_FILES
#define ALL_H_FILES

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

#endif

在主文件上,您可以:#include“ ALL_H_FILES.h”