在reverse_iterator的cppreference页面上我发现以下评论
std::reverse_iterator不适用于返回成员对象引用的迭代器(所谓的“隐藏迭代器”)。存储迭代器的一个例子是std::filesystem::path::iterator。
这种说法正确吗?如果是的话,这是为什么?
对我来说,这个限制没有意义,因为我假设反向迭代器基本上交换了 and operator ++(operator --并将底层迭代器存储为 1)。
编辑:显然这个问题可能会被误解:我知道我们需要一次递减操作来实现反向迭代器。问题是为什么在构建过程中没有实现这一点reverse_iterator。这样就避免了隐藏迭代器的问题。但显然这不是它的完成方式,并且每次取消引用迭代器时都会完成递减。为什么?