std::string从a 构造a 时const char*,我经常使用以下模式:
const char* p = GetString();
std::string s(p);
Run Code Online (Sandbox Code Playgroud)
我想我可以使用类似的模式:
const char* p = GetString();
std::string s = p;
Run Code Online (Sandbox Code Playgroud)
但是,当我想分配而不是构建一个std::string来自a时const char*,我有太多的选择:
s = p;
s.assign(p);
std::string(p).swap(s);
Run Code Online (Sandbox Code Playgroud)
选择是否大致或多或少相同?我应该选择哪个,为什么?
为了便于阅读,只需使用惯用语operator=进行分配.另外,直接构建std::string了const char*.
std::string s(GetString());
s = GetString();
Run Code Online (Sandbox Code Playgroud)