反转 C++ 中的 std::string 如何与此构造函数一起使用?


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()指向该字符的前一个字符,构造函数将无法访问该字符,因为间隔的那一侧是打开的(。

最新更新