Namespaces
Variants

std::ranges::chunk_view<V>:: end

From cppreference.net
Ranges library
Range adaptors
std::ranges::chunk_view
Member functions
chunk_view::end
Classes for input_range s
Deduction guides
outer-iterator
outer-iterator ::value_type
inner-iterator
V 仅建模 input_range
constexpr std:: default_sentinel_t end ( ) const noexcept ;
(1) (C++23 起)
constexpr auto end ( ) requires ( ! __simple_view < V > ) ;
(2) (C++23 起)
constexpr auto end ( ) const requires ranges:: forward_range < const V > ;
(3) (C++23 起)

返回一个 迭代器 std::default_sentinel ,该对象与 chunk_view 的结束迭代器比较相等。

1) 仅当 V 满足 input_range 概念时可用。等价于: return std:: default_sentinel
2,3) 当且仅当 V 满足 forward_range 概念时可用。令 base_ 表示底层适配的视图, n_ 表示存储的块大小, iterator 表示嵌套的迭代器类。
2) 等价于
if constexpr (ranges::common_range<V> && ranges::sized_range<V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<false>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<V> && !ranges::bidirectional_range<V>)
    return iterator<false>(this, ranges::end(base_));
else
    return std::default_sentinel;
3) 等价于
if constexpr (ranges::common_range<const V> && ranges::sized_range<const V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<true>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<const V> && !ranges::bidirectional_range<const V>)
    return iterator<true>(this, ranges::end(base_));
else
    return std::default_sentinel;

返回值

一个迭代器或哨位,表示如上所述的 chunk_view 的末尾。

示例

参见

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