最近我看到很多人初次化std::string
这样的人:
std::string a{ "test" }; // Yes they do it with a single value
现在我不会使用它,除非它是一个数组或传递一个初始化列表。
但它让我感到好奇,是否有任何意义这样做最好:
std::string a = "test";
std::string a ( "test" );
这三项工作毫无疑问,我得到了后两者的区别。
它是否会带来某种性能提升?
答案 0 :(得分:2)
它是否会带来某种性能提升?
没有
最后,调用一个std::string
构造函数。唯一的区别是编译器如何选择构造函数。
开发人员可能会根据其使用情况选择一种样式,这可能是因为存在初始化列表构造函数,或者因为缩小了转换或explicit
构造函数。然后为了一致性而对字符串使用相同的样式。
对于std::string
,通过编译器的所有三条路径最终选择相同的构造函数。