반응형
1. 'ios_base::sync_with_stdio(false);'
- 'c++'의 'iostream'과 'c'의 'stdio'간의 동기화를 비활성화한다.
- 보통 'c++'의 입출력은 'c'의 입출력보다 느리지만 이 명령어를 사용하면 'c++'의 입출력 속도가 향상된다.
- 하지만 'c'의 입출력 함수('printf', 'scanf' 등)를 같이 사용할 수 없다.
'c++'의 입출력 함수('cin', 'cout')만 사용해 주어야 한다.
ios_base::sync_with_stdio(false);
ios_base::sync_with_stdio(0);
- 나는 'false'대신에 '0'을 쓴다.
2. 'cin.tie(NULL);'
- 'cin'과 'cout'은 기본적으로 서로 연결 되어 있다. 필요하지 않으면 성능이 저하 될 수 있다.
- 'cin.tie(NULL)'을 사용하여 'cin'과 'cout'의 연결을 해제하여 성능을 향상시킬 수 있다.
cin.tie(NULL);
cin.tie(0);
- 나는 'NULL'대신에 '0'을 쓴다.
3. 'cout.tie(NULL);'
- 'cin.tie(NULL)'과 비슷한 역할 이다.
- 일반적으로 'cin.tie(NULL)'만 사용해도 충분한다.
cout.tie(NULL);
cout.tie(0);
- 나는 'NULL'대신에 '0'을 쓴다.
4. 'scanf' / 'printf'
- 'c++'에서도 'c'의 입출력 함수 'scanf'와 'printf'를 사용할 수 있다.
'c'의 입출력 함수는 'c++'보다 입출력 속도가 빠르다 - 하지만 'ios_base::sync_with_stdio(false);'과 함게 사용할 수 없다.
scanf("");
printf("");
5. 'endl' -> '\n'
- 'endl'은 '\n'보다 속도가 느리다
- 'endl'대신 '\n'을 사용하여 출력하면 성능을 항상시킬 수 있다.
cout<<"Hello World\n"; // 빠름
cout<<"Hello World"<<endl; // 느림
참고
위는 알고리즘 문제를 풀거나 성능이 매우 중요한 프로그램 개발에서 유용하다.
일반적인 프로그램 개발에서는 이러한 최적화가 필요하지 않을 수도 있다.
최적화를 할때는 신중하게 적용하는 것이 좋다.
끝
반응형
'c++ > c++' 카테고리의 다른 글
[c++] 'cin.ignore()' (0) | 2025.03.02 |
---|---|
[c++] sort (1) | 2025.03.02 |
[c++] 팩토리얼 계산하기 (0) | 2024.04.28 |
[c++] 소수점 자릿수 조절하기 (0) | 2024.02.21 |
[c++] (0) | 2024.02.18 |