C++字符串添加

And*_*rew 2 c++ string insert addition

简单的问题:如果我有一个字符串,我想添加头部和尾部字符串(一个在开头,另一个在结尾),最好的方法是什么?像这样的东西:

std::string tmpstr("some string here");
std::string head("head");
std::string tail("tail");
tmpstr = head + tmpstr + tail;
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

提前致谢.

The*_*ish 21

如果您担心效率并希望避免+运营商制作的临时副本,那么您可以:

tmpstr.insert(0, head);
tmpstr.append(tail);
Run Code Online (Sandbox Code Playgroud)

如果你更关心效率,你可以补充一下

tmpstr.reserve(head.size() + tmpstr.size() + tail.size());
Run Code Online (Sandbox Code Playgroud)

在进行插入/追加之前,确保只进行一次重新分配.

但是,您的原始代码简单易读.有时这比更有效但更难阅读的解决方案"更好".