본문 바로가기

C++

[C++] std::ios_base::sync_with_stdio(false);

반응형

for문을 사용할 때는, 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간 초과가 날 수 있다.

이때 'std::ios_base::sync_with_stdio(fasle)' 또는 'ios::sync_with_stdio(false)'를 사용하여 속도를 높여줄 수 있다.

 

기본적으로 C++의 iostream은 C의 stdio와 동기화 되어 있다.

이로 인해 iostream과 stdio의 버퍼를 모두 사용하게 된다.

std::ios_base::sync_with_stdio(false)로 iostream과 stdio의 동기화를 끊어주게 되면,

C++만의 버퍼를 사용하게되고 버퍼의 수가 줄어들게 되면서 속도가 높아질 수 있다.

하지만 동기화를 끊어주었기 때문에 scanf, printf, puts, getchar, putchar 등 C 입출력 방식은 사용할 수 없다.

반응형

'C++' 카테고리의 다른 글

[C++] 입력 종료 판별  (0) 2020.05.12
[C++] 입력: std::cin.tie(NULL);  (0) 2020.05.05
[C++] struct tm {};  (0) 2020.03.29
[C++] localtime()  (0) 2020.03.25
[C++] STL std::sort(begin, end, compareFunction)  (0) 2020.03.07