名稱空間
變體
操作

std::ranges::repeat_view<W, Bound>::iterator

來自 cppreference.com
< cpp‎ | ranges‎ | repeat view
 
 
範圍庫 (Ranges library)
範圍介面卡 (Range adaptors)
 
 
struct /*iterator*/;
(僅作說明*)

ranges::repeat_view<W, Bound>::iteratorranges::repeat_view<W, Bound>begin()end() 返回的迭代器型別。

目錄

[編輯] 巢狀型別

僅用於說明的型別
型別 定義
index-type std::conditional_t<std::same_as<Bound, std::unreachable_sentinel_t>,
                   std::ptrdiff_t, Bound>
(僅供說明的成員型別*)
迭代器屬性型別
型別 定義
iterator_concept std::random_access_iterator_tag
iterator_category std::random_access_iterator_tag
value_type W
difference_type std::conditional_t<is-signed-integer-like <index-type >,
                   index-type , iota-diff-t <index-type >>

[編輯] 資料成員

成員 定義
const W* value_ 指向要重複的值的指標
(僅用於闡釋的成員物件*)
index-type current_ 當前位置
(僅用於闡釋的成員物件*)

[編輯] 成員函式

std::ranges::repeat_view::iterator::iterator

/*iterator*/() = default;
(1) (C++23 起)
constexpr explicit /*iterator*/
    ( const W* value, /*index-type*/ b = /*index-type*/() );
(2) (C++23 起)
(僅作說明*)

構造一個迭代器。過載 (2)ranges::repeat_viewbegin()end() 呼叫。

1)nullptr 初始化 value_ 並值初始化 current_ 。
2)value 初始化 value_ 並用 b 初始化 current_
如果 Bound 不是 std::unreachable_sentinel_tb 為負,則行為未定義。

std::ranges::repeat_view::iterator::operator*

constexpr const W& operator*() const noexcept;
(C++23 起)

返回 *value_

std::ranges::repeat_view::iterator::operator[]

constexpr const W& operator[]( difference_type n ) const noexcept;
(C++23 起)

返回 *(*this + n)

std::ranges::repeat_view::iterator::operator++

constexpr /*迭代器*/& operator++();
(1) (C++23 起)
constexpr void operator++(int);
(2) (C++23 起)
1) 等價於 ++current_ ; return *this;
2) 等價於 auto tmp = *this; ++*this; return tmp;

std::ranges::repeat_view::iterator::operator--

constexpr /*iterator*/& operator--();
(1) (C++23 起)
constexpr /*iterator*/ operator--(int);
(2) (C++23 起)
1) 等價於 --current_ ; return *this;
如果 Bound 不是 std::unreachable_sentinel_tcurrent_ 為非正值,則行為未定義。
2) 等價於 auto tmp = *this; --*this; return tmp;

std::ranges::repeat_view::iterator::operator+=

constexpr /*iterator*/& operator+=( difference_type n );
(C++23 起)

等價於 current_ += n; return *this;

如果 Bound 不是 std::unreachable_sentinel_tcurrent_ + n 為負,則行為未定義。

std::ranges::repeat_view::iterator::operator-=

constexpr /*iterator*/& operator-=( difference_type n );
(C++23 起)

等價於 current_ -= n; return *this;

如果 Bound 不是 std::unreachable_sentinel_tcurrent_ - n 為負,則行為未定義。

[編輯] 非成員函式

operator==, <=>(std::ranges::repeat_view::iterator)

friend constexpr bool operator==
    ( const /*iterator*/& x, const /*iterator*/& y );
(1) (C++23 起)
friend constexpr auto operator<=>
    ( const /*iterator*/& x, const /*iterator*/& y );
(2) (C++23 起)
1) 返回 x.current_ == y.current_
2) 返回 x.current_ <=> y.current_

!= 運算子由 operator== 合成

這些函式對於普通的非限定查詢限定查詢不可見,並且只有在 iterator 是引數的關聯類時才能透過實參依賴查詢找到。

operator+(std::ranges::repeat_view::iterator)

friend constexpr /*iterator*/ operator+
    ( /*iterator*/ i, difference_type n );
(1) (C++23 起)
friend constexpr /*iterator*/ operator+
    ( difference_type n, /*iterator*/ i );
(2) (C++23 起)

等價於 i += n; return i;

這些函式對於普通的非限定查詢限定查詢不可見,並且只有在 iterator 是引數的關聯類時才能透過實參依賴查詢找到。

operator-(std::ranges::repeat_view::iterator)

friend constexpr /*iterator*/ operator-
    ( /*iterator*/ i, difference_type n );
(1) (C++23 起)
friend constexpr difference_type operator-
    ( const /*iterator*/& x, const /*iterator*/& y );
(2) (C++23 起)
1) 等價於 i -= n; return i;
2) 返回 static_cast<difference_type>(x.current_ ) -
    static_cast<difference_type>(y.current_ )

這些函式對於普通的非限定查詢限定查詢不可見,並且只有在 iterator 是引數的關聯類時才能透過實參依賴查詢找到。

[編輯] 注意

iterator 始終是 random_access_iterator

English 日本語 中文(简体) 中文(繁體)