ホームページ > バックエンド開発 > C++ > scanf() と cin: C 入力ではどちらが高速ですか?

scanf() と cin: C 入力ではどちらが高速ですか?

Linda Hamilton
リリース: 2024-11-19 07:13:03
オリジナル
514 人が閲覧しました

scanf() vs. cin: Which is Faster for C   Input?

速度の比較: 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 プログラムでの使用は一般に推奨されません。 :

  • cin とは異なり、タイプセーフではありません。
  • C スタイルのコードと C スタイルのコードが混在することにより、プログラミング スタイルの不一致が生じます。
  • iostream は、特に同期を無効にして最適化した場合に、より現代的で効率的な入出力操作を提供します。

以上がscanf() と cin: C 入力ではどちらが高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート