c++ - c++ - 如何在不实际创建临时对象的情况下传递子字符串

标签 c++ string

假设我有一个函数

str_rev(string &s, int len) {}

反转长度为len的字符串s

我想反转从索引 5 开始且长度为 10 的长字符串的子字符串

为此,我不得不先调用子字符串函数,然后调用传递子字符串的 str_rev 函数

sub_string = long_str.substr(5, 10)
str_rev(sub_string, 10);

有没有办法在不实际创建临时对象的情况下实现这一点?

最佳答案

让您的函数采用迭代器(或者更确切地说,使用 std::reverse())并传入分隔子字符串的迭代器。

关于c++ - c++ - 如何在不实际创建临时对象的情况下传递子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060839/

相关文章:

c++ - 计算装配错误率的工具

c++ - 你如何在 osx 上使用 waf 链接 opengl 和 glut?

c++ - 使用 C++ 中的流操纵器在固定宽度字段中居中文本

c++ - 在不使用 Arduino 中的 String 对象的情况下将二进制数据转换为其等效的 ASCII

c++ - 命名构造函数和临时生命周期延长

c++ - 添加一个 child (引擎Unity like)

java - 存储单词联想的数据结构

Python在格式化表达式中对字典进行排序

c++ - 无法将任何文件添加到 GIT "libgit2 returned: Invalid data in index - invalid entry"

C89 - 从字符串中提取时间