c++ - 在 C++ 中反转 std::string 如何与此构造函数一起使用?
问题描述
std::string original;
std::string reversed(original.rbegin(), original.rend());
我找到了这种反转 a 的方法,std::string
但我不明白它是如何工作的。你能给我一个解释吗?
解决方案
在代码中:
std::string original;
std::string reversed(original.rbegin(), original.rend());
被调用的构造函数是:
template< class InputIt >
basic_string( InputIt first, InputIt last,
const Allocator& alloc = Allocator() );
用 range 的内容构造字符串
[first, last)
。
因此,将使用迭代器范围[original.rbegin(), original.rend())
。rbegin()
并rend()
返回反向迭代器。这意味着范围将从原始字符串的最后一个字符开始,到第一个字符结束(rend()
指向该字符的前一个字符,构造函数不会访问该字符,因为间隔的那一侧是打开的)。
推荐阅读
- node.js - 处理带有快递请求的数组
- mongodb - 弃用警告:collection.insert 已弃用。改用 insertOne、insertMany 或 bulkWrite
- git - 将上游分支合并到具有重写历史的分支中
- html - 导航栏折叠
- excel - 复制过滤信息
- powershell - Powershell:无法使用 Get-EventLog 获取特定事件 IDS 的输出
- mysql - Mysql组复制无法添加实例
- javascript - Javascript - 每个链接都应该在弹出窗口中打开
- javascript - Socket.io 可能的发射器问题
- csv - 如何在 sqlite3 脚本中按 date=today 过滤