본문 바로가기

알고리즘/기본 문법

<알고리즘> 입출력 싱크

ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);


위 코드는 입출력싱크를 맞추는 것을 해제한다는 의미이다.

c++에서 대표적인 입출력 함수로는 cin, cout, scanf, printf가 있고 

이는 시스템콜관련 함수이므로 같이 쓰일 때는 입출력싱크를 맞춰주어야 한다.

 

속도(빠른 순) scanf, printf > cin, cout

 

왜냐면 cin, cout은 c라이브러리인 stdio의 버퍼와 동기화하느라 시간을 소비하기 때문이죠.
이 때 cin, cout의 시간을 빠르게 해주는 방법이 있다. 바로 위코드처럼 싱크를 해제하여
버퍼 동기화를 하지 않는 것이죠. 하지만 이렇게 했을 때 반드시!!cin, cout를 쓸 때 scanf,
printf를 쓰지 말아야 합니다. 동기가 풀리니 모르는 사이드 이펙트가 발생할 수도 있는 것이죠.

'알고리즘 > 기본 문법' 카테고리의 다른 글

DFS, BFS  (0) 2022.08.02
<알고리즘> 2차원 배열 회전  (0) 2022.04.22
<알고리즘> 2차원 배열 수정하는 함수  (0) 2022.04.22
<알고리즘> n진법 변환  (0) 2022.04.22
<알고리즘> 배열 부분 회전  (0) 2022.04.22