基于这个问题。 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/,我不明白返回的内容是否被视为前向迭代器。我是否必须保证反向迭代器满足正向迭代器的属性?在这种情况下,我如何检查它是否属实?vector::rbegin()文档没有提到是否是这种情况。