2 lck32578 lck32578 于 2015.06.13 18:50 提问

cout<<string1+string2和cout<<string1<<string2哪个效率高?

cout<<string1+string2和cout<<string1<<string2哪个效率高?如题

8个回答

caozhy
caozhy   Ds   Rxr 2015.06.13 18:58
已采纳

理论上后者效率高,但是这点差别忽略不计。

lck32578
lck32578 好感谢大家!
2 年多之前 回复
u012965373
u012965373   2015.06.13 19:53

肯定是后者,因为要传到输出流中在输出到设备

lck32578
lck32578 好感谢大家!
2 年多之前 回复
wangyaninglm
wangyaninglm   Ds   Rxr 2015.06.13 20:31

第一种肯定会生成临时对象的吧,所以效率会低一点的

lck32578
lck32578 好感谢大家!
2 年多之前 回复
weixin_29004535
weixin_29004535   2015.06.13 20:37

二。。。。。。。。。。

lck32578
lck32578 好感谢大家!
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.06.13 20:41

第一个理论上会有临时对象的生成,但是编译器可能优化,比如你开release,以及优化等。可以自己对比

lck32578
lck32578 好感谢大家!
2 年多之前 回复
xuefenghan2011
xuefenghan2011   2015.06.13 21:39

第二种效率会高写,cout输出后直接返回自身,不用运算,入栈出栈的次数会少些

lck32578
lck32578 好感谢大家!
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.14 15:28

是后者,传到输出流中在输出到设备,前者生成临时对象,不过时间都差不多

u013947639
u013947639   2015.06.14 15:16
Csdn user default icon
上传中...
上传图片
插入图片