📅  最后修改于: 2023-12-03 14:39:38.114000             🧑  作者: Mango
在C++ STL中,array
是一个固定大小的数组容器,它具有一组非常有用的函数,包括crbegin()
和crend()
。这两个函数分别返回一个const_reverse_iterator
类型的迭代器,用于从数组的末尾向前遍历元素。
array::crbegin()
函数返回指向最后一个元素的const_reverse_iterator
类型的迭代器,它指向数组的最后一个元素,并允许从数组末尾向前遍历元素。
template<class T, size_t N>
const_reverse_iterator<array<T, N>::const_iterator> array<T, N>::crbegin() const noexcept;
无
const_reverse_iterator
类型的const
迭代器,可用于从数组末尾向前遍历元素。
#include <iostream>
#include <array>
using namespace std;
int main() {
// 声明一个包含5个整数的array
array<int, 5> arr = {1, 2, 3, 4, 5};
// 从数组末尾向前遍历元素
for (auto it = arr.crbegin(); it != arr.crend(); ++it) {
cout << *it << " ";
}
return 0;
}
输出:
5 4 3 2 1
array::crend()
函数返回指向数组之前的位置(即第一个元素之前的位置)的const_reverse_iterator
类型的迭代器,它允许向数组的前面遍历元素。
template<class T, size_t N>
const_reverse_iterator<array<T, N>::const_iterator> array<T, N>::crend() const noexcept;
无
const_reverse_iterator
类型的const
迭代器,可用于向数组的前面遍历元素。
#include <iostream>
#include <array>
using namespace std;
int main() {
// 声明一个包含5个整数的array
array<int, 5> arr = {1, 2, 3, 4, 5};
// 向数组前面遍历元素
for (auto it = arr.crend() - 1; it >= arr.crbegin(); --it) {
cout << *it << " ";
}
return 0;
}
输出:
1 2 3 4 5
可以看到,crend()
函数返回的迭代器指向第一个元素之前的位置,需要对其进行减操作才能指向第一个元素。