命名空间
变体
操作

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)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 符合。

[编辑] 示例

[编辑] 参见

返回指向开头的迭代器
(公有成员函数) [编辑]
返回一个表示范围末尾的哨兵
(自定义点对象)[编辑]