std::string original;
std::string reversed(original.rbegin(), original.rend());
我找到了这种反转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() );
使用范围
[first, last)
的内容构造字符串。
因此,将使用迭代器范围[original.rbegin(), original.rend())
。rbegin()
和rend()
返回反向迭代器。这意味着范围将从原始字符串的最后一个字符开始,到第一个字符结束(rend()
指向该字符的前一个字符,构造函数将无法访问该字符,因为间隔的那一侧是打开的(。