C++ 字符串加法

标签 c++ string insert addition

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

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/

相关文章:

javascript - 如何将字符串点符号转换为对象引用,而不是嵌套

javascript - 检查字符串是否包含关键字数组

php - INSERT 查询产生 "Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given"

c++ - OpenCV : libopencv_core. so.2.4:无法打开共享对象文件:没有这样的文件或目录

c++ - 无法为我的 C++ 应用成功通过 travis-ci

html - AngularJS:从字符串中插入 HTML

mysql - 条件插入到mysql

php - 从一种表单插入多个表(mysql 和 PHP)

java - TopCoder 最佳选择算法来自 SRM 489 DIV 2(500 分)

c++ - "error C2248: ' sf::NonCopyable::NonCopyable ' : cannot access private member declared in class ' sf::NonCopyable '"