#include<bits/stdc++.h>包含C++的所有头文件
做CF看见别人用这个函数,然后就能直接用vector,set,string那些函数了,摸不着头脑,感觉特神奇就百度了一下,才发现这个是C++版本升级,然后文件自带的,方便了程序员吧。不然每次都得敲那模板老长……
使用和平常的头文件一样,如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
#include<bits/stdc++.h>这个头文件包含以下等等C++中包含的所有头文件:
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
等等……
不过在国内oj中,poj,hdu 不支持这个函数,这几个oj的编译器问题,其他国外的oj,还有台湾的oj都支持,CF,Topcoder也都支持。
C中,有没有类似C++中的#include<bits/stdc++.h>,包含所有头文件的头文件。就算包含了C标准库的所有头文件也没多大意义,实际编程的时候免不了要用到<unistd.h>/<pthread.h>等等。此外把那么多标识符引入全局空间也增加编译器负担,且增加不小心与标准库组件重名的可能 觉得有必要包含所有C标准库头文件的话自己写一个就是了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include <assert.h> //这个的行为依赖用户是否定义NDEBUG宏……
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <limits.h>
#include <locale.h>
#include <math.h>
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#ifdef __STDC_VERSION__
#if __STDC_VERSION__ >= 199409L
#include <iso646.h>
#include <wchar.h>
#include <wctype.h>
#if __STDC_VERSION__ >= 199901L
#if ! __STDC_NO_COMPLEX__
#include <complex.h>
#endif
#include <fenv.h>
#include <inttypes.h>
#include <stdbool.h>
#include <stdint.h>
#include <tgmath.h>
#if __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#if ! __STDC_NO_ATOMICS__
#include <stdatomic.h>
#endif
#include <stdnoreturn.h>
#if ! __STDC_NO_THREADS__
#include <threads.h>
#endif
#include <uchar.h>
#endif
#endif
#endif
#endif
|