vector 反向迭代器
时间: 2024-01-07 17:23:47 浏览: 173
vector的反向迭代器是一种用于逆序遍历vector容器的迭代器。它可以从容器的最后一个元素开始,依次向前遍历到第一个元素。下面是vector反向迭代器的实现方法:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用rbegin()和rend()函数获取反向迭代器的起始和结束位置
std::vector<int>::reverse_iterator rit;
for (rit = vec.rbegin(); rit != vec.rend(); ++rit) {
std::cout << *rit << " ";
}
return 0;
}
```
输出结果为:5 4 3 2 1,即逆序输出了vector容器中的元素。
相关问题
列举vector反向迭代器的成员函数
vector类提供了反向迭代器(reverse iterator)来逆序遍历容器中的元素。以下是vector反向迭代器的成员函数:
1. `rbegin()`:返回一个指向容器最后一个元素的反向迭代器。
2. `rend()`:返回一个指向容器第一个元素前面的位置的反向迭代器。
3. `crbegin()`:返回一个指向容器最后一个元素的常量反向迭代器。
4. `crend()`:返回一个指向容器第一个元素前面的位置的常量反向迭代器。
这些成员函数可以用于遍历vector容器中的元素,从最后一个元素开始,逐个向前遍历到第一个元素。
列举vector反向迭代器的成员函数base()
vector反向迭代器的成员函数base()是用于获取当前反向迭代器所指向元素的正向迭代器的方法。它返回一个正向迭代器,指向与当前反向迭代器相对应的元素。
下面是使用base()函数的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用反向迭代器遍历vector
for (auto it = vec.rbegin(); it != vec.rend(); ++it) {
// 获取当前反向迭代器所指向元素的正向迭代器
auto forwardIt = it.base();
// 输出当前元素的值
std::cout << *forwardIt << " ";
}
return 0;
}
```
输出结果为:5 4 3 2 1
阅读全文