C 프로그램에서 scanf()를 사용하는 것이 cin보다 더 빠릅니까?
프로그래머들 사이의 일반적인 믿음은 stdio 함수 scanf()를 사용한다는 것입니다. printf()는 C 대응인 cin 및 cout보다 빠릅니다. 이 질문은 이 주장을 탐구하고 경험적 증거를 제공합니다.
참 또는 거짓: scanf()는 cin보다 빠릅니다
제공된 답변에서 알 수 있듯이 scanf()는 실제로 C의 cin보다 훨씬 빠릅니다. 주어진 벤치마크에서 수백만 개의 숫자가 포함된 대용량 텍스트 파일을 처리할 때 scanf()는 cin보다 4배 더 성능이 뛰어났습니다.
왜 속도 차이가 있습니까?
The 속도 차이는 각 기능의 기본 구현에서 비롯됩니다. scanf()는 효율성과 속도에 중점을 둔 C의 표준 I/O 라이브러리에서 구현됩니다. 반면 Cin은 유형 안전성과 광범위한 데이터 유형 지원을 우선시하는 C의 iostream 라이브러리에서 구현됩니다.
모범 사례: cin 대신 scanf() 사용
성능 결과에 따르면 항상 cin 대신 scanf()를 선택하고 싶을 수도 있습니다. 그러나 이 방법은 여러 가지 이유로 권장되지 않습니다.
대안: std::ios::sync_with_stdio(false)
성능이 중요한 고려 사항인 경우 절충 솔루션은 std::ios::sync_with_stdio(false)를 호출하는 것입니다. 이렇게 하면 stdio와 iostream 간의 동기화가 비활성화되어 오버헤드가 줄어들고 iostream 작업 성능이 향상됩니다.
위 내용은 `scanf()`는 C의 `cin`보다 정말 빠른가요? Fact or Fiction?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!