【发布时间】:2020-10-28 07:35:55
【问题描述】:
基于this question。 std::rotate 定义如下:
template< class ForwardIt >
constexpr ForwardIt rotate( ForwardIt first, ForwardIt n_first, ForwardIt last );
查看名称ForwardIt,它需要前向迭代器。
问题:假设我的初始集合支持正向迭代器(例如vector),我可以在这里使用反向迭代器吗?为什么/为什么不?
例如,查看http://www.cplusplus.com/reference/iterator/reverse_iterator/,我不明白返回的内容是否被视为前向迭代器。我是否必须保证反向迭代器满足forward iterator's 属性?在这种情况下,我如何检查它是否属实? vector::rbegin() 文档没有提及是否是这种情况。
【问题讨论】:
-
不是答案,但 cplusplus.com 不是最好的来源。与en.cppreference.com/w/cpp/iterator/reverse_iterator相比,您链接的页面有些过时@
标签: c++ iterator reverse-iterator