Stdc++.h
2020-01-09, Thu
bits/stdc++.h
헤더 파일은 GCC에서 사용하는 모든 헤더 파일을 모아서 인클루드 해놓은 헤더 파일인데, 이런걸 왜 쓰냐 하면..
- PS 할 때 알고리즘 짤 시간이 중요하지 헤더 파일 인클루드 할 시간은 중요하지 않다
- 각 알고리즘이 어떤 헤더에 있는지 역시 크게 중요하지 않다
- 대부분의 PS 대회의 채점을 GCC로 하기 때문에 비록 비표준 헤더이지만 잘 먹힌다
단점을 꼽자면 컴파일 시간이 길어지고 네임스페이스가 복잡해질 수 있는데, 특히 using namespace std;
를 즐겨 쓰니까 더욱 그렇게 된다. 다만 컴파일 시간은 채점에 포함되지 않고, 또 한 코드당 문제 하나만 풀면 되니 크게 부각되는 단점은 아니다.
내용은 그냥 단순한 인클루드의 나열이라 따로 만들 수도 있는데, 그게 귀찮다면 그냥 내용을 복사해서 쓰면 끝이다.
GCC 소스 미러나 GCC 공식 git 사이트에 내용이 있다. 폴더 이름이나 내용물을 보면 원래는 precompiled header를 위해 존재하는 헤더인 듯 하다.
자신이 쓰는 컴파일러가 최신이 아니거나 GCC와 지원 범위가 다르다면 일부 헤더 파일은 없을 수 있다. 없다고 나오는 헤더 파일은 주석 처리하면 된다.