2월, 2020의 게시물 표시

[C++] printf, scanf, "\n"와 cin, cout, endl의 속도 차이의 이유

알고리즘 문제를 풀다보면, 입출력이 빈번한 경우 cin, cout을 사용하기 전에 입출력 속도를 빠르게 하기 위해서 ios::sync_with_stdio(false);와 cin.tie(0);을 작성하여 쓰는 것을 볼 수 있다. 실제로 printf, scanf와 거의 차이가 없을 정도로 속도가 향상된 것을 볼 수 있다. 이유는 이 함수 내부에서 입출력을 포함하여 버퍼를 'flush' 해주기 때문에 그렇다. 마찬가지의 이유로 줄바꿈을 나타낼 때 endl 대신에 "\n"을 사용하여 속도를 향상 시키자.

undefined behavior

코딩하다보면, undefined behavior를 생각할 때가 있다. 틈날 때마다 보기위해 여기 링크를 걸어둔다. https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviours-that-a-c-programmer-should-know-a