當從const char*
構建std::string
,我經常使用以下模式:正確的成語的std :: string分配
const char* p = GetString();
std::string s(p);
我想我可以用類似的模式:
const char* p = GetString();
std::string s = p;
但,當我想從const char*
分配而不是構建std::string
時,我的選擇太多了:
s = p;
s.assign(p);
std::string(p).swap(s);
上面的選擇或多或少是等價的嗎?我應該選擇哪一個,爲什麼?
首選s = GetString();因爲這沒有機會給你一個意外的功能(最痛苦的解析 - http://en.wikipedia.org/wiki/Most_vexing_parse) – dascandy