Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
struct /*iterator*/ ;
( 仅用于说明* )

ranges:: repeat_view < W, Bound > :: iterator ranges:: 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) (since C++23)
constexpr explicit /*iterator*/
( const W * value, /*index-type*/ b = /*index-type*/ ( ) ) ;
(2) (since C++23)
( 仅用于说明* )

构造迭代器。重载 (2) begin() end() 调用,属于 ranges::repeat_view

1) 使用 nullptr 初始化 value_ 并对 current_ 进行值初始化。
2) 使用 value 初始化 value_ ,并使用 b 初始化 current_
如果 Bound 不是 std::unreachable_sentinel_t b 为负值,则行为未定义。

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

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

返回 * value_

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

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

返回 * ( * this + n )

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

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (since C++23)
constexpr void operator ++ ( int ) ;
(2) (since C++23)
1) 等价于 ++ current_  ; return * this ;
2) 等价于 auto tmp = * this ; ++* this ; return tmp ;

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

constexpr /*iterator*/ & operator -- ( ) ;
(1) (since C++23)
constexpr /*iterator*/ operator -- ( int ) ;
(2) (since C++23)
1) 等价于 -- current_  ; return * this ;
Bound 不是 std::unreachable_sentinel_t current_ 非正数,则行为未定义。
2) 等价于 auto tmp = * this ; --* this ; return tmp ;

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

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

等效于 current_ + = n ; return * this ;

如果 Bound 不是 std::unreachable_sentinel_t current_ + n 为负值,则行为未定义。

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

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

等价于 current_ - = n ; return * this ;

Bound 不是 std::unreachable_sentinel_t current_ - n 为负值,则行为未定义。

非成员函数

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

friend constexpr bool operator ==
( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(1) (since C++23)
friend constexpr auto operator <=>
( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(2) (since 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) (since C++23)
friend constexpr /*iterator*/ operator +
( difference_type n, /*iterator*/ i ) ;
(2) (since C++23)

等价于 i + = n ; return i ;

这些函数对普通的 非限定查找 限定查找 不可见,仅当 iterator 是参数的关联类时,才能通过 实参依赖查找 找到。

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

friend constexpr /*iterator*/ operator -
( /*iterator*/ i, difference_type n ) ;
(1) (since C++23)
friend constexpr difference_type operator -
( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(2) (since 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