본문 바로가기
Algorithm

c++ 표준입출력 가속 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

by ahsung 2020. 3. 19.

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

 

코드는 c++에서 cin, cout 객체의 표준 입출력을 가속합니다.

 

하지만 thread의 싱크가 unsafe 해지므로 예상하지 못한 순서의 입출력이 나올 수 있습니다.

 

thread가 여러개인 환경에서는 위험하므로, 만약 현업에서 속도를 위해 사용한다면 printf, scanf,getchar등

c의 표준입출력 함수를 사용하길 바랍니다.

 

알고리즘 문제의 경우 싱글 스레드를 사용하기 때문에 위 코드를 그냥 써도 문제가 발생하지 않지만

 

ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 코드 작성후

 

cin,cout 객체와 printf,scanf를 혼합하여 사용할 경우 예상치 못한 순서로 입출력이 실행될 수 있습니다.

 

ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);를 사용하는경우 cin,cout객체와 c표준입출력을 혼용하지 맙시다!!

 

댓글