速度比较: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 的 stdio 函数保持同步的开销。
优化cin 的性能:
但是,通过禁用与 std::ios::sync_with_stdio(false) 的同步,iostream 版本可以获得相当的性能:
Method | Execution Time |
---|---|
cin and cout (with sync_with_stdio(false)) | 5.5 seconds |
通过此优化, iostream 优于 scanf() 并成为最快
结论:
虽然 scanf() 本质上比 cin 更快,但通常不建议在 C 程序中使用它,因为:
以上是scanf() 与 cin:C 输入哪个更快?的详细内容。更多信息请关注PHP中文网其他相关文章!