Language/C++

[C++] 입출력 속도

마탁이 2020. 12. 13. 17:03

1. std::ios::sync_with_stdio(false);
  - C 표준 stream과 C++ 표준 stream의 동기화를 하지 않는다.
  - 기본적으로 모든 표준 stream들은 동기화되어 있다.
    그래서 C와 C++의 입출력방식을 자유롭게 사용할 수 있다.
  - 동기화를 하지 않는다면 C++의 stream들은 독립적인 버퍼를 갖게 되며,
    C와 C++의 입출력방식을 혼용해서 쓰는 것이 굉장히 위험해진다.
  - 동기화된 C++의 stream은 thread-safe 하다.
    (다른 thread의 output이 동시에 액세스해도 충돌하지 않는다.)
  - 동기화를 하지 않으면 사용하는 버퍼의 수가 줄어들기 때문에 실행 속도 자체는 향상된다.

 

2. cin.tie(NULL)

  - cout << "hi";
    cin >> name;
    의 순서는 원래 "hi"가 출력되고 name을 입력받는다.

  - 하지만 cin.tie(NULL)을 한다면 입력부터 먼저 하게 된다.

 

'Language > C++' 카테고리의 다른 글

[C++] 컴파일 / 런타임 / 논리 오류  (0) 2020.12.15
[C++] 전처리기  (0) 2020.12.13
[C++] 얕은 복사와 깊은 복사  (0) 2020.12.13
[C++] 스마트 포인터  (0) 2020.12.13
[C++] 가상함수  (0) 2020.12.13