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

时间:2018-05-06 20:53:13

标签: c++ stdstring

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

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

1 个答案:

答案 0 :(得分:2)

在代码中:

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

被调用的constructor是:

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

使用范围[first, last)的内容构造字符串。

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