首页 > 解决方案 > 在 C++ 中反转 std::string 如何与此构造函数一起使用?

问题描述

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

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

标签: c++stdstring

解决方案


在代码中:

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


推荐阅读