【发布时间】:2018-06-13 22:12:21
【问题描述】:
在the cppreference page of reverse_iterator我发现以下评论
std::reverse_iterator不适用于返回引用的迭代器 成员对象(所谓的“存储迭代器”)。存储示例 迭代器是std::filesystem::path::iterator。
这种说法正确吗?如果是,那是为什么?
对我来说,这个限制没有意义,因为我假设反向迭代器基本上交换了 operator ++ 和 operator --(并将底层迭代器存储了一个)。
编辑:显然这个问题可能会被误解:
我知道我们需要一次减量操作来实现反向迭代器。问题是为什么在reverse_iterator 的构建过程中没有实现这一点。然后避免了存储迭代器的问题。但显然这不是这样做的,每次取消引用迭代器时都会进行递减。为什么?
【问题讨论】: