[C++] printf, scanf, "\n"와 cin, cout, endl의 속도 차이의 이유

알고리즘 문제를 풀다보면, 입출력이 빈번한 경우 cin, cout을 사용하기 전에 입출력 속도를 빠르게 하기 위해서
ios::sync_with_stdio(false);와 cin.tie(0);을 작성하여 쓰는 것을 볼 수 있다.
실제로 printf, scanf와 거의 차이가 없을 정도로 속도가 향상된 것을 볼 수 있다.

이유는 이 함수 내부에서 입출력을 포함하여 버퍼를 'flush' 해주기 때문에 그렇다.
마찬가지의 이유로 줄바꿈을 나타낼 때 endl 대신에 "\n"을 사용하여 속도를 향상 시키자.


댓글

이 블로그의 인기 게시물

[PS] BOJ 20543번 폭탄 던지는 태영이

프로그래밍에서 실수형의 부정확성

프로그래머스 2019 윈터코딩 온라인 테스트를 보았다. (풀이)