【发布时间】:2017-12-21 09:33:10
【问题描述】:
您好,我想学习一种专业的方法来用 c++ 初始化一个空字符串。
我可以的
std::string a_string; // way_1
或
std::string a_string = ""; // way_2
但我认为way_1 完全取决于std 包中定义的默认值。对我来说,这不是一个明确的声明,如果将来更改 std::string 的代码,它可能需要更改。 way_2 对我来说不是直接的,而是使用 "" 相当于一个空字符串。对我来说,内置的空字符串是专业的,比如 nullptr 用于初始化指针。
你知道 C++ 专业程序员会如何初始化一个空字符串吗?
谢谢
【问题讨论】:
-
看看这篇关于空字符串的有趣帖子:survex.com/~olly/blog/coding/empty-strings-in-c%2B%2B.html
-
没有“标准包”之类的东西。字符串类是语言标准中定义的标准库的一部分。字符串的默认值在语言标准中定义。如果您不信任该标准,请不要使用该语言。
-
如果我想为空字符串提供显式初始化器,我会使用
{}:std::string a_string{};或std::string a_string = {};或auto a_string = std::string{};。