G코딩 스토리

[C++] endl과 '\n' 차이점 본문

Develop/C++

[C++] endl과 '\n' 차이점

Jiione 2022. 12. 19. 20:20

백준 2751번 수 정렬하기2를 sort() 함수를 이용해 풀던 중 계속 시간 초과가 발생했다.

그러던 중 다른 사람과의 차이 점이 줄 바꿈을 endl을 사용하냐 `\n`을 사용하냐 차이였다. 그래서 endl을 `\n`으로 바꾼 결과 시간 초과가 사라졌다.

그래서 두 가지 차이점이 무엇인지 알아 보던 중 버퍼와 관련된 것을 알게 되었다.

 

endl vs ' \n '

 요약해서 말하면 endl은 출력 버퍼를 비우기 때문에 느리고 `\n`은 출력 버퍼를 비우지 않기 때문에 빠르다.

출력 버퍼를 비우게 되면 버퍼에 있던 문자열을 화면에 바로 출력하게 되는데 endl은 사용될 때마다 버퍼에 있는 문자열을 출력한다.

하지만, `\n`은 개행은 하지만 버퍼를 비우지않고 문자열을 버퍼에 모아 놨다가 한번에 출력하기 때문에 endl에 비해서 빠르다.