При построении std::string
из const char*
я часто использую следующий шаблон:
const char* p = GetString();
std::string s(p);
Полагаю, я мог бы использовать подобный шаблон:
const char* p = GetString();
std::string s = p;
Но когда я хочу присвоить std::string
вместо const char*
вместо конструирования, у меня слишком много вариантов:
s = p;
s.assign(p);
std::string(p).swap(s);
Являются ли варианты выше более или менее эквивалентными? Что мне лучше и почему?