Namespaces
Variants

std::ranges::split_view<V,Pattern>:: iterator

From cppreference.net
Ranges library
Range adaptors
class /*iterator*/ ;
(自 C++20 起)
( 仅用于说明* )

split_view::begin 的返回类型。这是一个 forward_iterator ,因此期望 V 至少满足 forward_range 概念。

目录

成员类型

成员类型 定义
iterator_concept std::forward_iterator_tag
iterator_category std::input_iterator_tag
value_type ranges:: subrange < ranges:: iterator_t < V >>
difference_type ranges:: range_difference_t < V >

数据成员

成员 描述
ranges:: split_view < V, Pattern > * parent_ (private) 指向父级 split_view 对象的指针
( 说明专用成员对象* )
ranges:: iterator_t < V > cur_ (private) 指向底层 view 的迭代器,指示当前子范围的起始位置
( 说明专用成员对象* )
ranges:: subrange < ranges:: iterator_t < V >> next_ (private) 指向当前子范围之后模式位置的子范围
( 说明专用成员对象* )
bool trailing_empty_ (private) 指示是否已到达空尾随子范围(如果存在)的标志
( 说明专用成员对象* )

成员函数

(constructor)
(C++20)
构造迭代器
(公开成员函数)
base
(C++20)
返回底层迭代器
(公开成员函数)
operator*
(C++20)
返回当前子范围
(公开成员函数)
operator++ operator++ (int)
(C++20)
推进迭代器
(公开成员函数)

std::ranges::split_view:: iterator :: iterator

/*iterator*/ ( ) = default ;
(1) (since C++20)
constexpr /*iterator*/ ( split_view & parent, ranges:: iterator_t < V > current,
ranges:: subrange < ranges:: iterator_t < V >> next ) ;
(2) (since C++20)
1) 使用默认成员初始化器值初始化非静态数据成员,即:
2) 初始化非静态数据成员:

std::ranges::split_view:: iterator :: base

constexpr const ranges:: iterator_t < V > base ( ) const ;
(since C++20)

等价于 return cur_ ;

std::ranges::split_view:: iterator :: operator*

constexpr value_type operator * ( ) const ;
(since C++20)

等价于 return { cur_, next_. begin ( ) } ;

std::ranges::split_view:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (since C++20)
constexpr void operator ++ ( int ) ;
(2) (since C++20)
1) 等价于
cur_ = next_. begin ( ) ;

if ( cur_ ! = ranges:: end ( parent_ - > base_ ) )
{
if ( cur_ = next_. end ( ) ; cur_ == ranges:: end ( parent_ - > base_ ) )
{
trailing_empty_ = true ;
next_ = { cur_, cur_ } ;
}
else
next_ = parent_ - > find_next ( cur_ ) ;
}
else
trailing_empty_ = false ;

return * this ;
2) 等价于 auto tmp = * this ; ++* this ; return tmp ;

非成员函数

operator==
(C++20)
比较底层迭代器
(函数)

operator== (std::ranges::split_view:: iterator , std::ranges::split_view:: iterator )

friend constexpr bool operator == ( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(since C++20)

等价于 return x. cur_ == y. cur_ and x. trailing_empty_ == y. trailing_empty_ ;

!= 运算符由 operator== 合成

此函数对常规的 非限定查找 限定查找 不可见,仅当 std::ranges::split_view:: iterator 是实参的关联类时,才能通过 实参依赖查找 找到。