关于#include<bits/stdc++.h>的说明
在看C/C++竞赛题时,经常看到#include<bits/stdc++.h>。什么意思呢?
有人称<bits/stdc++.h>为万能头文件。其
优点:
1、在竞赛中节约时间。
2、减少了编写所有必要头文件的工作量。
3、对于使用的每个函数,不用记住GNU C++的所有STL。
缺点:
1、不属于GNU C++库的标准头文件,在部分情况下可能会失败。
2、使用它将包含许多不必要的东西,并增加编译时间。
3、这个头文件不是C++标准的一部分,因此是不可移植的,应该避免。
4、编译器每次编译翻译单元时都必须实际读取和分析每个包含的头文件,应该减少这类头文件的使用。
#include 是 C 和 C++ 语言中的预处理指令,用于告诉编译器在编译时将某个头文件(header file)的内容包含到当前源代码文件中。这样可以在当前源代码文件中使用头文件中定义的函数、变量、宏等。
<bits/stdc++.h>它是一个特殊的头文件,包含了大部分标准 C和C++ 库的头文件,可以方便地一次性引入多个库,简化代码编写过程。对于C++而言,在这个头文件中,通常包含的标准库包括:
<iostream>:用于输入输出操作。
<vector>:提供动态数组(向量)的实现。
<string>:处理字符串操作。
<algorithm>:包含各种算法,如排序、搜索等。
<cmath>:包含数学函数,如数值计算、三角函数等。
<queue>:实现队列(先进先出)数据结构。
<stack>:实现栈(后进先出)数据结构。
<map>:实现键值对存储的数据结构。
…… 后面将给出查看DevC++带的<bits/stdc++.h>具体含有哪些 C和C++ 库的头文件的办法。
使用<bits/stdc++.h>头文件,可以省去引入各个标准库的繁琐过程,因为它已经将常用的标准库头文件都包含进去了。需要注意的是,<bits/stdc++.h>并不是标准 C++ 头文件,它的使用在一些编译器(如 GCC 编译器)中可行,但并不保证在所有编译器中都能正常工作。因此,在编写可移植的 C++ 代码时,建议使用标准的头文件,根据需要分别引入需要的库头文件,以免在不同的编译器上产生兼容性问题。
DevC++就可以使用<bits/stdc++.h>。
若你安装了Windows版DevC++版,可在在安装路径
Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\32\bits
看到
stdc++.h
这就是DevC++所带的<bits/stdc++.h>版本,它是文本文件,可以用“记事本”打开看看。
【C/C++用include引入头文件可以包含路径,如果头文件位于当前源文件的同一目录下不需路径。
通常,建议使用尖括号< >来引入系统级别的头文件,例如#include <bits/stdc++.h>,此时编译器会查找预定义的系统路径来定位头文件;而使用双引号" "来引入用户自定义的头文件,比如#include "mypath/myheader.h"】
下面给出DevC++使用<bits/stdc++.h>头文件的示例,实现: 依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。
#include <bits/stdc++.h>
using namespace std;
int a,b,c,d;
int main() {
cin>>a>>b>>c>>d;
cout<<d<<' '<<c<<' '<<b<<' '<<a;
return 0;
}
OK!