速度の比較: scanf() と cin
質問:
それは本当ですかC プログラムで scanf() を使用する方が、使用するよりも高速であることcin?
答え:
はい、ベンチマーク結果で実証されているように、scanf() は C の cin よりも確かに高速です。
テストでは、多数の数値リストを読み取り、それらの XOR 値を計算する単純なプログラムが作成されました。プログラムは、stdio の scanf() と iostream の cin および cout の両方を使用して実装されました。
結果:
Method | Execution Time |
---|---|
scanf() | 6.4 seconds |
cin and cout | 24.3 seconds |
この大きな速度の違いは、主に iostream 関数に起因します。 ' C の標準入出力との同期を維持する際のオーバーヘッド
cin のパフォーマンスの最適化:
ただし、std::ios::sync_with_stdio(false) で同期を無効にすることで、iostream バージョンは同等のパフォーマンスを達成できます。
Method | Execution Time |
---|---|
cin and cout (with sync_with_stdio(false)) | 5.5 seconds |
この最適化により、iostream
結論:
scanf() は本質的に cin より高速ですが、C プログラムでの使用は一般に推奨されません。 :
以上がscanf() と cin: C 入力ではどちらが高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。