Namespaces
Variants

std::ranges::stride_view<V>::end

从 zh.cppreference.net
 
 
范围库
范围适配器
 
 
constexpr auto end() requires (!/*simple-view*/<V>);
(1) (C++23 起)
constexpr auto end() const requires ranges::range<const V>
(2) (C++23 起)

返回一个表示 迭代器或哨位,代表该 stride_view 的末尾。

设 base_ 和 stride_ 为底层数据成员。

1) 令 Const 定义为 using Const = false; ,Base 定义为 using Base = V;。
2) 令 Const 定义为 using Const = true; ,Base 定义为 using Base = const V;。

等价于:

if constexpr (ranges::common_range<Base> &&
              ranges::sized_range<Base> &&
              ranges::forward_range<Base>)
{
    auto missing = (stride_ - ranges::distance(base_) % stride_) % stride_;
    return iterator<Const>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<Base> &&
                   !ranges::bidirectional_range<Base>)
{
    return iterator<Const>(this, ranges::end(base_));
}
else
{
    return std::default_sentinel;
}

参数

(无)

返回值

一个指向最后一个元素之后元素的 迭代器 ,当底层视图 V 满足 common_range 概念时。否则返回与结束迭代器相等的 std::default_sentinel 。

注释

stride_view < V > 满足 common_range 概念的条件是:当且仅当其底层视图 V 满足该概念。

示例

参见

返回指向起始位置的迭代器
(公开成员函数)
返回指示范围结束的哨兵
(定制点对象)