使用"cout"时使用"<<"或"+"将字符串放在一起

iDr*_*LLY 13 c++ console cout

我看到人们通过同时使用"<<"和"+"输出不同的字符串.

cout << firstname << lastname << endl;
Run Code Online (Sandbox Code Playgroud)

与:

cout << firstname + lastname << endl;
Run Code Online (Sandbox Code Playgroud)

使用"<<"更好还是没有太大的区别?

K-b*_*llo 19

我会说<<在这种特殊情况下使用它会更好.否则,连接会产生一个临时的,可以毫无理由地分配内存.


Mat*_*son 16

当然,使用<<- 连接字符串将创建粘贴在一起的两个字符串的副本.它是否还在顶部分配额外的内存是在C++库中如何实现字符串的问题,但如果名字和姓氏"足够长"(一起大于8-16个字符),那么它很可能会分配内存(然后在不再需要临时副本时再次释放它).

<<运营商将有非常小的开销相比,所以毫无疑问,这是更好的.

当然,除非你做了成千上万的这些事情,否则你不可能有可衡量的差异.但是不浪费CPU周期是好的,你永远不知道它们在其他地方有什么用处...;)