bits/stdc++.h란?
1. 개요
- 알고리즘 풀이를 하다보면 자주 보인다.
#include <bits/stdc++.h>
- BOJ 문제를 풀면 다른 사람의 공개 코드를 볼 수 있다.
- 저 헤더파일은 뭘까?
2. 세부내용
- 파일을 열어보면 단순한 헤더파일 선언문의 집합이다.
- 아래에서 파일 내용을 볼 수 있다.
- 보통 헤더파일은
#ifndef
~#endif
로 구성되어,- 중복해서 작성해도 문제가 없다.
algorithm
헤더파일 상단부를 보면 다음과 같다.- 따라서 몇 번을 include 하던 간에 상관없다.
#ifndef _ALGORITHM_ #define _ALGORITHM_
- 그러니 우리는, 맘편히 사용하면된다.
- 다만, 알고리즘 초기에는 선언문을 직접 써보는 걸 추천한다.
- 나중에 실제로 사용할 때 함수가 어디에 들어가 있는지 모를 수 있다..
- 본인은 처음 C++ 공부할 때 아래 선언문도 사용 안했다.
using namespace std;
-
이미 많이 풀어본 문제거나, 헤더파일의 위치를 다 알 때 사용하도록 하자
- 참고로 이 헤더파일은 기본적으로 존재하는 것이 아니다.
- 아래 경로에
bits
라는 폴더를 생성한다.- 다른 경로는 다를 수 있지만
include
는 변하지 않는다. Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include
- 다른 경로는 다를 수 있지만
- 폴더 안에
stdc++.h
파일을 넣어주기만 하면!- 다음과 같은 선언이 가능해진다.
#include <bits/stdc++.h>
- 아래 경로에
- 주의할 점은 버전에 따라 매번 다시 추가해줘야 한다는 것이다.
- 위에 경로로 예를 들면
14.34.31933
가 버전이다. - 버전이 달라지면 해당 버전 폴더의
include
에 폴더를 생성하고 넣어줘야 한다.
- 위에 경로로 예를 들면
3. Header file
#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#endif
// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif