C++에서 시간 단축을 위한 입 출력

김동현·2023년 7월 13일
0

코딩테스트

목록 보기
4/12

C++을 이용하여 문제를 풀 때 종종 시간을 초과하는 문제가 이 3개 구문 추가로 간단하게 해결될 때가 있다.

ios::sync_with_stdio(false);

C의 stdio와 C++의 iostream의 동기화 비활성화, C++ 독립 버퍼 사용으로 수행 속도가 빨라지는 효과가 발생한다.

cin.tie(NULL);
cout.tie(NULL);

하나로 묶인 두 스트림을 푼다.
기본적으로 cin, cout은 하나로 묶였는데, 이것은 한 스트림이 다른 스트림에서 각 IO 작업을 진행하기 전 자동으로 버퍼를 비워주는 것을 보장한다.
특히 cin을 수행하기 전 기본적으로 cout 출력 버퍼를 지우는 작업을 수행하는데, 이 작업을 생략하기 때문에 속도가 빨라지는 효과가 있다.

위의 문구는 멀티스레드 환경이나 화면 출력 부분에서 의도와 다르게 동작할 수 있기 때문에 실제 프로젝트나 시스템 구축 시에 잘 사용하는 구문은 아니다.

다만, 코딩 테스트 환경은 싱글스레드 환경이 대부분이며 화면 출력을 고려하지 않기 때문에 속도 향상을 위해 이 구문을 사용한다고 이해하면 좋다.

profile
프론트에_가까운_풀스택_개발자

0개의 댓글