好吧,我知道为什么,这是因为没有转换,但为什么没有转换呢?为什么转发迭代器可以转向反转迭代器而不是反过来呢?更重要的是,如果我想这样做,我该怎么办?是否有一些适配器允许您使用前向迭代器向后迭代?
std::vector<int> buffer(10);
std::vector<int>::iterator forward = buffer.begin();
std::vector<int>::reverse_iterator backward = buffer.rbegin();
++forward;
++backward;
std::vector<int>::iterator forwardFromBackward = std::vector<int>::iterator(backward); // error! Can't convert from reverse_iterator to iterator!
std::vector<int>::reverse_iterator backwardFromForward = std::vector<int>::reverse_iterator(forward); // this is fine
Run Code Online (Sandbox Code Playgroud)