2016-04-21 117 views
0

我正在使用向量和链接列表的类项目。但在C++中,为了应用它们,我需要在头文件中包含以下代码。如何一次包含所有的C++标准库?

#include<list> 
#include<vector> 

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

#include<StandardTemplateLibrary> 

保存行。但到处都是我看不到一个单独的命令添加到我的代码,我试过cstdlib,stdlib,cstdlib.h,并没有包含我需要的关键字。

是否有一个单独的预处理器,我可以添加到我的项目中来执行这两个操作?或者我只需要包含两者?如果你可以引用我的来源阅读以及将不胜感激。

+4

为什么“保存行”很重要? –

+1

我不认为'包括'整个库是一个好主意,其中大部分代码甚至都不使用。 –

+1

扩展以前的评论:因为它会显着减慢编译速度(当然取决于计算机的速度)。 – emlai

回答

4

在一些编译器上,包括<bits/stdc++.h>可能会做你正在寻找的东西。

但请注意,它使您的代码不可移植(它可能不适用于其他编译器,甚至相同编译器的不同版本)。这在某些情况下是可以的。为什么这样做

更多信息可能不是一个好主意:Why should I not #include <bits/stdc++.h>?

4

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

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

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


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

+2

出于好奇:为什么这是故意的? –

+0

@BartFriederichs最大限度地减少依赖关系 –

+2

如果你没有解释为什么它是故意的,为什么你应该总是指定你明确使用的包含,以及为什么OP不应该'不要被臭名昭着的包括欺骗,你是完全正确的,但是如果你不解释为什么,很难从这篇文章中学到任何东西 – Chiel

3

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

1

您可以使用:

#include<bits/stdc++.h> 

,因为即使被大家建议。 但它不是一个标准的头文件。 的它的缺点是,它是

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