I've seen many people writing many header files explicitly and not using bits/stdc++.h. Does using bits/stdc++.h have any disadvantages?
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
I've seen many people writing many header files explicitly and not using bits/stdc++.h. Does using bits/stdc++.h have any disadvantages?
Name |
---|
It works in GCC only and there are probably no guarantees that it will still work in the future. It also slows down compilation as compiler has to process much more files (unless you use it as intended — as a precompiled header, see below). There are several other downsides, they all sum up to "it's unacceptable in production code".
Note that when setup correctly, it would make compilation faster.
In my MacBook Pro with
g++-7
, compile a HelloWorld program using precompiled<bits/stdc++.h>
is ~15% faster than<iostream>
.That people, as I think, use XCode (IDE) on MacOS. It IDE hasnt <bits/stdc++.h> header. P.S. it just my hypothesis and sorry for my ENG.
People who code in visual studio don't use it because it doesn't work there. Other reasons:
It slows down compilation time(doesn't affect execution time though)
On few OJs, Variable name y1 doesn't work with it. Example How to avoid it
It's hard to memorize?
A Noob like me sometimes write #include<bits\stdc++.h> And then it's hard to debug the error...
Ps: I don't do this now.. but it happened to me once.