반응형

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없이 바로 입력을 받는다.

 

+ Recent posts