在 C++ 中反转 std::string 如何使用此构造函数?

How does reversing a std::string in C++ works with this constructor?

std::string original;
std::string reversed(original.rbegin(), original.rend());

我找到了这种反转 std::string 的方法,但我不明白它是如何工作的。你能给我解释一下吗?

代码中:

std::string original;
std::string reversed(original.rbegin(), original.rend());

调用的constructor是:

template< class InputIt >
basic_string( InputIt first, InputIt last, 
              const Allocator& alloc = Allocator() );

Constructs the string with the contents of the range [first, last).

因此,将使用迭代器范围 [original.rbegin(), original.rend())rbegin() and rend() return 反向 迭代器。这意味着该范围将从原始字符串的最后一个字符开始并在第一个字符结束(rend() 指向该字符的前一个字符,构造函数不会访问该字符,因为间隔的那一侧是打开)。