简单的问题:
如果我有一个字符串,并且想在其中添加首尾字符串(一个在开头,另一个在结尾),那么最好的方法是什么?
像这样:
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++ - C++字符串加法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1283216/