作者ypf791 (路人1号)
看板EE_DSnP
标题[问题] cout vs printf
时间Thu Dec 6 23:16:23 2012
上次上课的时候提到 C++ 的 I/O 系统
想到一个问题 所以想来问一下
顺便澄清一下自己的观念
---
根据个人的经验
printf 的速度好像比 cout 还快
请问这是真的吗?
如果是真的 原因又是什麽?
我自己的推论 可能的原因有以下三点
1) 那时候不习惯 cout 的格式化输出所以写起来比较麻烦
2) cout 里面根本就是包 printf 所以直接多一层 function call
3) 不断用 << 串联的过程中 每次都多一个 function call
相较之下 printf 只有一次 function call
但是我记得 (1) 的情况并不严重 至少没有大量的 if-else
所以 (2) 或 (3) 是主要原因吗?
如果是 那麽是哪项比较严重 或者都差不多?
---
另外 printf 里引数数量不固定
其内部对於引数的处理是如何呢?
是对每个引数都做了一次对应到该型别的 function call 吗?
还是利用其他机制实现?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.4.192
1F:推 ric2k1:先写一个程式试试看 printf 是否真的比 cout 快? 12/06 23:37
2F:推 david942j:printf比cout快吧 多年OJ经验是printf快三倍左右 12/06 23:56
3F:推 keyboardle:小测一下没得到定论.我想先有明显差距的程式再讨论较好 12/07 02:18
4F:→ david942j:读入500万个int就会有明显差距了 12/07 17:17
5F:推 butterfly21:printf vs cout是没那麽明显 12/07 17:38
6F:→ butterfly21:scanf vs cin 根本两个世界 12/07 17:39
7F:推 david942j:我自动脑补成比较scanf和cin了... 12/07 18:15