名稱空間
變體
操作

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

來自 cppreference.com
< cpp‎ | ranges‎ | chunk_view
 
 
範圍庫 (Ranges library)
範圍介面卡 (Range adaptors)
 
std::ranges::chunk_view
成員函式
chunk_view::end
input_range 的類
推導指引
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 起)

返回一個 迭代器 (iterator) 或一個 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 的結束,如上所述。

[編輯] 示例

[編輯] 參閱

返回指向起始的迭代器
(public member function) [編輯]
返回指示範圍末尾的哨兵
(customization point object)[編輯]