vector 的反向迭代器如何转换为正向迭代器的应用举例
时间: 2024-06-15 19:07:05 浏览: 174
vector的反向迭代器可以通过rbegin()和rend()函数获取,它们分别指向vector的最后一个元素和第一个元素的前一个位置。要将反向迭代器转换为正向迭代器,可以使用base()函数。
下面是一个应用举例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用反向迭代器遍历vector
std::cout << "反向遍历vector:";
for (auto it = vec.rbegin(); it != vec.rend(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 将反向迭代器转换为正向迭代器
auto forwardIt = vec.rbegin().base();
// 使用正向迭代器遍历vector
std::cout << "正向遍历vector:";
for (auto it = forwardIt; it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
反向遍历vector:5 4 3 2 1
正向遍历vector:1 2 3 4 5
```
阅读全文