std::array<T,N>::rbegin, std::array<T,N>::crbegin
reverse_iterator rbegin() noexcept; |
(C++17 前) | |
constexpr reverse_iterator rbegin() noexcept; |
(C++17 起) | |
const_reverse_iterator rbegin() const noexcept; |
(C++17 前) | |
constexpr const_reverse_iterator rbegin() const noexcept; |
(C++17 起) | |
const_reverse_iterator crbegin() const noexcept; |
(C++17 前) | |
constexpr const_reverse_iterator crbegin() const noexcept; |
(C++17 起) | |
返回指向逆向 array
首元素的逆向迭代器。它对应非逆向 array
的末元素。若 array
为空,则返回的迭代器等于 rend() 。
参数
(无)
返回值
指向首元素的逆向迭代器。
复杂度
常数。
示例
运行此代码
#include <algorithm> #include <iostream> #include <string> #include <string_view> #include <array> int main() { constexpr std::array<std::string_view, 8> data = {"▁","▂","▃","▄","▅","▆","▇","█"}; std::array<std::string, std::size(data)> arr; // 'data' 是只读 array 故我们只能用 const 版本的迭代器读取它 // (注意 'cbegin' 前面的 'c' 代表 'const' ); // 'arr' 是目标,故使用非 const 版本的迭代器 'begin' 。 std::copy(data.cbegin(), data.cend(), arr.begin()); // ^ ^ ^ auto print = [](const std::string_view s) { std::cout << s << ' '; }; print("Print 'arr' in direct order using [cbegin, cend):\t"); std::for_each(arr.cbegin(), arr.cend(), print); // ^ ^ print("\n\nPrint 'arr' in reverse order using [crbegin, crend):\t"); std::for_each(arr.crbegin(), arr.crend(), print); // ^^ ^^ print("\n"); }
输出:
Print 'arr' in direct order using [cbegin, cend): ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ Print 'arr' in reverse order using [crbegin, crend): █ ▇ ▆ ▅ ▄ ▃ ▂ ▁
参阅
返回指向末尾的逆向迭代器 (公开成员函数) |