본문 바로가기
c++/c++

[c++] 알고리즘 문제 입출력 속도 향상 방법

by ilp 2025. 3. 2.
반응형

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