自行實現C++ STL reverse_iterator適配器逆序输出array容器中存储的所有元素
时间: 2024-11-15 07:27:00 浏览: 28
在C++标准模板库(STL)中,`reverse_iterator`是一个适配器,用于迭代从容器结尾向前遍历的对象。如果你想逆序输出数组(`std::array`)中的所有元素,可以手动创建一个`reverse_iterator`并结合`std::copy`函数来实现。下面是一个简单的示例:
```cpp
#include <iostream>
#include <array>
// 定义一个接受reverse_iterator的辅助函数,用于打印元素
void print_elements(const std::reverse_iterator<std::array<int, size>::const_iterator>& ri) {
for (; ri != std::end(ri.base()); ++ri) {
std::cout << *ri << " ";
}
std::cout << std::endl;
}
int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5}; // 初始化一个数组
// 使用reverse_iterator逆序遍历数组
std::reverse_iterator<std::array<int, 5>::const_iterator> rev_iter(arr.rbegin(), arr.rend());
print_elements(rev_iter); // 输出:5 4 3 2 1
return 0;
}
```
在这个例子中,我们首先创建了`reverse_iterator` `rev_iter`,它指向数组的最后一个元素。然后通过`print_elements`函数,我们从后向前逐个输出数组元素。
阅读全文