c++ - const string a = "tmp"vs const string& a = "tmp"

标签 c++ string optimization

我和我的一位同事就此进行了讨论。并且想知道更多人对哪个“可以”更优的看法? PS:如果代码只是一个 hello world 程序,-O3 会产生相同的代码,但我们讨论的是此代码段位于大型项目中间的场景。

最佳答案

上下文具有决定性的重要性。你的分析器可能会告诉你不要出汗。

在这种情况下,无论如何都必须构造一个新的 std::string,并且“对生命周期扩展的临时值的常量引用”实际上只会导致编译器做更多的工作(到发出等效/相同的代码)。

我会选择清晰度:

代码意图,而非方法

所以

std::string tmp("Hello");

或者

std::string tmp = "Hello"; 

会充分表达意图。

关于c++ - const string a = "tmp"vs const string& a = "tmp",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630259/

相关文章:

c++ - 跟随位操作的优化机会?

c++ - Microsoft 推荐使用哪种 native API 来渲染 2D 图形?

C++:从 wstringstream 获取 LPCWSTR?

javascript - 查找字符串中同时也是后缀的最长前缀 - Javascript

ios - 从 Swift 中的字符串中删除字符

c# - 从匹配两个单独的 List<T> 中获取 List<T>

c++ - 从二进制文件读取时获取错误数据

c++ - 不引发异常时的性能 (C++)

可以将 C++11 lambda 分配给签名不正确的 std::function

c++ - C++中比较的效率? (绝对值(X)> 1 对比绝对值(x)!= 0)