如何同时包含所有C++标准库

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

本文关键字:标准 C++ 何同时 包含所      更新时间:2023-10-16

我正在使用向量和链表进行一个类项目。但在C++中,为了应用它们,我需要在头中包含以下代码。

#include<list>
#include<vector>

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

#include<StandardTemplateLibrary>

保存行。但无论在哪里,我都看不到要添加到代码中的单个命令,我尝试过cstdlib、stdlib、cstdlib.h,但它们都不包含我需要的关键字。

有没有一个单独的预处理器,我可以添加到我的项目中来完成这两项工作?还是我必须同时包括两者?如果你能给我参考资料,我将不胜感激。

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

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

关于为什么这样做可能不是一个好主意的更多信息:为什么我不应该#include <bits/stdc++.h>

您可以使用:

#include<bits/stdc++.h> 

正如大家所建议的那样但它不是标准的头文件它的缺点是它是

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

有没有一个单独的预处理器,我可以添加到我的项目中来完成这两项工作?还是我必须同时包括两者?

不,没有,这是故意的。标准库实现应该为实现的组件提供最少的相互依赖关系。

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


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

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

您只需为自己创建一个预编译的头文件(通常包括)即可加快构建速度。它在上个千年很流行。

请参阅维基百科上关于这个主题的文章。

您可以尝试:

#ifndef ALL_H_FILES
#define ALL_H_FILES
#include <iostream>
#include <vector>
#include <list>
//include other libraries
#endif

在您的主文件上,您可以:#include"ALL_H_FILES.H";

飘柔!C++23将节省您包含所有内容的工作量。您可以执行以下操作:

import std; //imports everything in std library
import std.compat; //brings c library to global namespace

尽管编译器可能需要等待一到三年才能支持它。

您可以简单地添加,而不是为不同的函数包含不同的库

#include <bits/stdc++.h>

在cpp程序的顶部。