最近我看到很多人像这样初始化他们的 std::string
:
std::string a{ "test" }; // Yes they do it with a single value
现在我不会使用它,除非它是一个数组或传递一个初始化列表。
但这让我很好奇,这样做最好结束有什么意义吗:
std::string a = "test";
std::string a ( "test" );
毫无疑问,这三者都有效,我明白了后两者之间的区别。
它会带来某种性能提升吗?
最佳答案
Does it give some kind of performance improvement?
没有。
最后,调用一个 std::string
构造函数。唯一的区别是编译器如何选择构造函数。
开发人员可能会根据重要的类的用法来选择样式,这可能是因为有初始化列表构造函数,或者是因为缩小转换或显式
构造函数。然后为了一致性而对字符串使用相同的样式。
对于 std::string
,编译器的所有三个路径最终都选择相同的构造函数。
关于c++ - 初始化 std::string 的不同方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30110325/