std::span rend() 方法
- 自 C++20 起
constexpr iterator rend() const noexcept;
返回一个反向迭代器
指向反转视图的最后一个元素。它对应于非反转视图的第一个元素之前的元素。
如果 span 为空,返回的迭代器将等于 rbegin()
。
注意
此方法实际上不会反转视图,它只是返回一个迭代器,该迭代器指向视图第一个元素之前的元素,并且其 +
、-
、--
、++
运算符的实现略有更改。
例如,it++
会递减内部指针,而it--
会递增内部指针(以便以相反的顺序遍历容器实际工作)。
未定义行为
尝试解引用越界迭代器是未定义行为
.参数
(无)
返回值
指向第一个元素的反向迭代器。
复杂度
常数 - O(1)。
示例
Main.cpp
#include <algorithm>
#include <iostream>
#include <span>
#include <string_view>
void ascending(const std::span<const std::string_view> data,
const std::string_view term)
{
std::for_each(data.begin(), data.end(),
[](const std::string_view x) { std::cout << x << " "; });
std::cout << term;
}
void descending(const std::span<const std::string_view> data,
const std::string_view term)
{
std::for_each(data.rbegin(), data.rend(),
[](const std::string_view x) { std::cout << x << " "; });
std::cout << term;
}
int main()
{
constexpr std::string_view bars[]{ "▁","▂","▃","▄","▅","▆","▇","█" };
ascending(bars, " ");
descending(bars, "\n");
}
输出
▁ ▂ ▃ ▄ ▅ ▆ ▇ █ █ ▇ ▆ ▅ ▄ ▃ ▂ ▁