Namespaces
Variants

std::ranges::view_interface<D>::back

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
constexpr decltype(auto) back()
    requires ranges::bidirectional_range<D> && ranges::common_range<D>;
(1) (始自 C++20)
constexpr decltype(auto) back() const
    requires ranges::bidirectional_range<const D> && ranges::common_range<const D>;
(2) (始自 C++20)

back() 成员函数的默认实现返回派生类型视图中最后一个元素。该元素是按值返回还是按引用返回取决于迭代器类型的 operator*。

等价于 return *ranges::prev(ranges::end(derived));,其中 derived 是:

1) static_cast<D&>(*this)
2) static_cast<const D&>(*this)


如果 empty() 是 true,则行为未定义。

(直至 C++26)

如果 empty() 是 true:

(始自 C++26)

返回值

视图中的最后一个元素。

注释

在 C++20 中,标准库中所有派生自 std::ranges::view_interface 的类型均未提供自身的 back() 成员函数。

然而,以下派生类型无法使用默认实现,因为它们既不满足 bidirectional_range 也不满足 common_range 的要求:

继承的 back() 成员函数可用于 std::ranges::empty_view ,但调用该函数始终会导致未定义行为。

示例

参阅

返回指向容器或数组起始位置的反向迭代器
(函数模板)
返回指向范围的反向迭代器
(定制点对象)
返回指向只读范围的反向迭代器
(定制点对象)