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

来自cppreference.com
< cpp‎ | ranges‎ | stride view
 
 
范围库
范围适配器
 
 
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) 定义 Constusing Const = false;Baseusing Base = V;
2) 定义 Constusing Const = true;Baseusing 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,它与尾迭代器比较相等。

注解

只要底层视图 V 实现 common_range,则 stride_view<V> 也实现它。

示例

参阅

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