-2
A
回答
1
沒有編譯器優化,是的。 x +「qwe」是一個表達式,可以在任何地方使用,而不僅僅在x的賦值的右側,所以它將創建一個長度爲6的新std :: string對象。在第二步中,x被分配這個新的std :: string對象的值,並且新的字符串對象被丟棄。啓用優化的智能編譯器可能足夠聰明,可以首先消除臨時對象的創建,但當然不能保證。
如果要執行這個,你可以代替寫:
x += "qwe";
防止任何臨時對象的創建。如果新大小超過其容量,字符串對象可能需要分配內存。你可以通過查看x.capacity()來檢查它,如果你關心實時性,你可以使用x.reserve()預先保留內存。
相關問題
- 1. 字符串連接性能
- 2. C#String.PadRight性能與連接字符串+ pad字符的子字符串
- 3. std字符串連接性能
- 4. 字符串連接性能差異
- 5. python字符串連接性能
- 6. 字符串連接vs字符串生成器。性能
- 7. 在C#中使用字符串連接的字符串連接
- 8. 連接字符串C#
- 9. C#Oracle連接字符串
- 10. C#ODBC連接字符串
- 11. MySQL連接字符串C#
- 12. C#/ LINQ:連接字符串
- 13. C#連接字符串
- 14. C#字符串與n^n個可能性的連接
- 15. 當不能連接到第一個連接字符串時,C#更改爲不同的連接字符串
- 16. C/C++中的連接字符串
- 17. C++和字符串連接分隔符
- 18. 字符串字符連接
- 19. Oracle字符串連接屬性
- 20. 用連接字符串填充屬性
- 21. 解析連接字符串的屬性
- 22. 字符串連接
- 23. 連接字符串
- 24. 字符串連接?
- 25. 連接字符串
- 26. 連接字符串
- 27. 連接字符串:
- 28. 連接字符串
- 29. 字符串連接
- 30. 連接字符串
[C++中有效的字符串連接]可能的重複(http://stackoverflow.com/questions/611263/efficient-string-concatenation-in-c) –
它與'x.operator =(x.operator + ( 「QWE」));'。 –