반응형
cpp 로 백준 문제를 풀다보면 여러가지 팁을 얻을수 있는데
그중에 해당 코드를 볼수있는데
std::ios::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
해당 코드들은 cpp 입출력 성능을 최적화 하기위해 사용되는 설정들이다.
std::ios::sync_with_stdio(false);
는 cpp iostream 과 c의 stdio 를 동기화 하는 설정을 해제한다.
기본적으로 cpp는 c의 printf scanf 등과 호환성을위해 동기화 되어있다.
동기화를 해제하면 cin과 cout 속도가 빨라지지만 printf scanf 와 같이쓸수없다.
std::cin.tie(0); 또는std::cin.tie(nullptr);
cin과 out의 묶음을 해제한다
기본적으로 cin을 사용하기 전에 cout 버퍼를 flush 하는 동작이 묶여있는데 이를 해제한다.
입력받기전에 출력 버퍼를 비울필요가 없어져서 속도가 향상된다.
std::cout.tie(0) 또는 std::cout.tie(nullptr)
cout의 tie를 해제한다.
cin.tie(0)와 비슷한역활이다.
tie는 cpp의 입출력 스트림에서 두스트림을 묶어주는 역활을 하는데
cout<<"반가워"
cin>>name;
은 내부적으로 사이에 cout.flush 가들어간다.
하지만 tie(0)을 해서 해제하면 사이에 flush없이 바로 입력을 받는다.