📌  相关文章
📜  C ++ STL中的array :: crbegin()和array :: crend()(1)

📅  最后修改于: 2023-12-03 14:39:38.114000             🧑  作者: Mango

C++ STL中的array::crbegin()和array::crend()

在C++ STL中,array是一个固定大小的数组容器,它具有一组非常有用的函数,包括crbegin()crend()。这两个函数分别返回一个const_reverse_iterator类型的迭代器,用于从数组的末尾向前遍历元素。

1. array::crbegin()

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
2. array::crend()

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()函数返回的迭代器指向第一个元素之前的位置,需要对其进行减操作才能指向第一个元素。