命名空间
变体
操作

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

来自 cppreference.cn
< cpp‎ | ranges‎ | stride view
 
 
范围库 (Ranges library)
范围适配器 (Range adaptors)
 
 
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,它与末尾迭代器相等。

[编辑] 注意

当底层视图 V 建模 common_range 时,stride_view<V> 也建模 common_range

[编辑] 示例

[编辑] 参阅

返回指向起始的迭代器
(public member function) [编辑]
返回指示范围末尾的哨兵
(customization point object)[编辑]