프로그래밍 언어/C C++

줄넘김 문자 endl , \n 차이

트리맨스 2021. 3. 24. 17:45
반응형

 

줄넘김 문자를 출력할 때 c++에서는 endl 과 \n 의 두 가지 선택지가 있다. 둘 중 무엇이 더 빨리 출력이 될까?

 

정답은 \n이다. 왜냐하면 std 내부에 정의되어 있는 endl을 보면 다음과 같다.

 

1
2
3
4
5
6
basic_ostream<_Elem, _Traits>& __CLRCALL_OR_CDECL endl(
    basic_ostream<_Elem, _Traits>& _Ostr) { // insert newline and flush stream
    _Ostr.put(_Ostr.widen('\n'));
    _Ostr.flush();
    return _Ostr;
}
cs

 

마지막에 보면 flush() 함수가 있다. 간단히 말하면, 버퍼를 비우는 동작이 endl 안에 포함되어 있기 때문에, 시간이 느린 것이다.

 

알고리즘 문제를 풀 경우에는 endl을 자제하도록 하자.

 

반응형