简单的问题:
如果我有一个字符串,并且想在其中添加首尾字符串(一个在开头,另一个在结尾),那么最好的方法是什么?
像这样:

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/

10-11 01:09