命名空间
变体
操作

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

来自 cppreference.com
< cpp‎ | ranges‎ | chunk view
 
 
范围库
范围适配器
 
std::ranges::chunk_view
成员函数
chunk_view::end
用于 input_ranges 的类
推导指南
outer-iterator
outer-iterator::value_type
inner-iterator
 
V 仅建模 input_range
constexpr std::default_sentinel_t end() const noexcept;
(1) (自 C++23 起)
V 建模 forward_range
constexpr auto end() requires (!__simple_view<V>);
(2) (自 C++23 起)
constexpr auto end() const requires ranges::forward_range<const V>;
(3) (自 C++23 起)

返回一个与 chunk_view 的末尾迭代器相等的 迭代器std::default_sentinel

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;

内容

[edit] 参数

(无)

[edit] 返回值

如上所述,表示 chunk_view 结束的迭代器或哨兵。

[edit] 示例

[edit] 另请参见

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