티스토리 뷰
[C++] <bits/stdc++.h> 헤더 쓸 때 시간 두 배 이상 줄이는 꿀팁!!!!
whatisyourname 2022. 4. 5. 00:392022.04.05 - [PS 갤러리/Tips & Tricks] - [C++] C++의 무적 헤더 <bits/stdc++.h> 는 무엇인가?
위 글에서 <bits/stdc++.h>의 단점으로 "느리다"를 꼽았다. 하지만, Pre-compiled 헤더를 사용하면 시간을 단축시킬 수 있다고 하였다. Pre-compiled 헤더를 직접 프로젝트 안에 쓰자. 특히, 알고리즘 문제 해결을 하는 사람들에게는 아주 좋은 꿀팁이라 생각한다.
g++를 사용하는 사용자를 기준으로 작성되었다.
1. 헤더 <bits/stdc++.h> 이 위치한 곳으로 이동한다.
C:\MinGW\lib\gcc\mingw32\6.3.0\include\c++\mingw32\bits (Windows)
/usr/include/x86_64-linux-gnu/c++/9/bits (Linux)
만약 C 폴더 밑에 MinGW를 설치하였다면 위의 경로에 있는 폴더를 연다. 만약 다른 경로에 설치하였다면, 앞의 경로에서 필요한 경로만큼 따라 들어가면 된다.
이곳에서 Shift + (마우스 우클릭)을 하여 "여기에 Powershell 창을 열기"를 선택하여 준다. 리눅스의 경우 터미널에서 진행하면 된다.
2. Powershell / Terminal에서 다음과 같이 입력한다.
Powershell 창 (파란 창) / Terminal 창 (검은 창)에서 다음과 같이 입력한다.
g++ -(컴파일러 종류) -std=(c++ 버젼) stdc++.h
컴파일러 종류에는 자신이 C++에서 사용하는 컴파일러 종류를 넣으면 된다. (모르겠으면 O2 넣으면 된다.)
C++ 버젼에는 자신이 사용하는 C++ 버전을 넣어주면 된다. 필자는 C++17을 사용하기에 "c++17"을 넣어주었다. (만약 C++14를 사용한다면 "c++14"와 같이 넣어주면 된다.)
필자의 경우 다음과 같이 파란색 창에 이렇게 넣어주었다.
이와 같이 넣은 이후, 폴더에 새로운 파일 (stdc++.h.gch) 이 생긴 것을 확인할 수 있다. 이 파일이 Pre-compiled 헤더이다.
모든 준비는 끝났다. 이제, Pre-compiled 헤더를 사용하기 위해선 코드에 #include "bits/stdc++. h"를 넣어주면 된다!
※ 주의 ※
#include <bits/stdc++. h>를 사용할 경우 Pre-compiled 헤더를 사용하지 않는다!!
반드시 #include "bits/stdc++.h"를 사용하자.
도움이 되었다면 지나가는 길에 하트 하나 눌러주세요, 양질의 글을 쓰는데 하나의 동기부여가 됩니다😍
지적이나 오타 수정 댓글 환영합니다!!
'PS 이야기 > Tips & Tricks' 카테고리의 다른 글
[C++] INF의 값은 어떤 것으로 해주는 것이 좋을까? (0) | 2022.04.20 |
---|---|
[C++] 회문(팰린드롬) 판별에 관한 모든 것 (0) | 2022.04.20 |
[C++] 여러 값 중 max, min을 찾을 때 아직도 이렇게 쓰시나요? (0) | 2022.04.14 |
[C++] C++의 무적 헤더 <bits/stdc++.h> 는 무엇인가? (0) | 2022.04.05 |
[C++] 초기화 함수 fill 과 memset은 무엇이 다를까? (1) | 2022.04.04 |
- Total
- Today
- Yesterday
- 프로그래밍
- 시간복잡도
- GDSC
- 사칙연산
- 문자열
- C
- equal
- CSAPP
- BOJ
- JS
- Network
- Max
- 구현
- MIN
- 제어문
- Proactor
- Python
- 수학
- effective async
- for
- bomblab
- 함수
- C++
- 헤더
- BRONZE
- 알고리즘
- docker
- react
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |