std::string original;
std::string reversed(original.rbegin(), original.rend());
我找到了这种方法来反转std::string
,但我不明白它是如何工作的。你能给我一个解释吗?
答案 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()
指向前一个字符,构造函数将不会访问该字符,因为间隔的那一边是打开)。