简单的问题: 如果我有一个字符串并且我想在其中添加头字符串和尾字符串(一个在开头,另一个在结尾),最好的方法是什么? 像这样:
std::string tmpstr("some string here");
std::string head("head");
std::string tail("tail");
tmpstr = head + tmpstr + tail;
有没有更好的方法呢?
提前致谢。
最佳答案
如果您关心效率并希望避免由 + 运算符制作的临时拷贝,那么您可以这样做:
tmpstr.insert(0, head);
tmpstr.append(tail);
如果你更关心效率,你可以添加
tmpstr.reserve(head.size() + tmpstr.size() + tail.size());
在进行插入/追加之前确保任何重新分配只发生一次。
但是,您的原始代码简单易读。有时,这比更高效但更难阅读的解决方案“更好”。
关于C++ 字符串加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1283216/