在C++中是否可以反转迭代器?
例如,许多算法都是基于传递起始和结束迭代器的原则设计的:
template <typename T>
void func( Iterator begin, Iterator end ){
...
}
现在假设,在内部,我需要在容器中前后迭代:
template <typename T>
void func( Iterator begin, Iterator end ){
// Iterate forward
...
// Iterate backward
...
}
我可以向std:advance
传递负值,但我想知道是否可以将迭代器转换为反向迭代器。这可行吗?