初始化std :: string的不同方法之间的区别

时间:2015-05-07 19:46:12

标签: c++ string initialization

最近我看到很多人初次化std::string这样的人:

std::string a{ "test" }; // Yes they do it with a single value

现在我不会使用它,除非它是一个数组或传递一个初始化列表。
但它让我感到好奇,是否有任何意义这样做最好:

std::string a = "test";
std::string a ( "test" );

这三项工作毫无疑问,我得到了后两者的区别。

它是否会带来某种性能提升?

Code

1 个答案:

答案 0 :(得分:2)

  

它是否会带来某种性能提升?

没有

最后,调用一个std::string构造函数。唯一的区别是编译器如何选择构造函数。

开发人员可能会根据其使用情况选择一种样式,这可能是因为存在初始化列表构造函数,或者因为缩小了转换或explicit构造函数。然后为了一致性而对字符串使用相同的样式。

对于std::string,通过编译器的所有三条路径最终选择相同的构造函数。