std::ranges::split_view<V,Pattern>::iterator
来自cppreference.com
| (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_ (私有)
|
指向父 ranges::split_view 对象的指针 (仅用于阐述的成员对象*) |
ranges::iterator_t<V> cur_ (私有)
|
指向底层 view 中当前子范围的起始的迭代器(仅用于阐述的成员对象*) |
ranges::subrange<ranges::iterator_t<V>> next_ (私有)
|
表示当前子范围之后的模式位置的子范围 (仅用于阐述的成员对象*) |
bool trailing_empty_ (私有)
|
指示是否抵达空尾部子范围(若存在)的标记 (仅用于阐述的成员对象*) |
成员函数
(构造函数) (C++20) |
构造迭代器 (公开成员函数) |
base (C++20) |
返回底层迭代器 (公开成员函数) |
operator* (C++20) |
返回当前子范围 (公开成员函数) |
operator++operator++(int) (C++20) |
推进迭代器 (公开成员函数) |
std::ranges::split_view::iterator::iterator
| |
(1) | (C++20 起) |
| |
(2) | (C++20 起) |
1) 以各自的默认成员初始化式对各非静态数据成员进行值初始化,即:
ranges::split_view* parent_ = nullptr;,ranges::iterator_t<V> cur_ = ranges::iterator_t<V>();,ranges::subrange<ranges::iterator_t<V>> next_ = ranges::subrange<ranges::iterator_t<V>>();,以及bool trailing_empty_ = false;。
2) 初始化各非静态数据成员:
ranges::split_view* parent_ = std::addressof(parent);,ranges::iterator_t<V> cur_ = std::move(current);,ranges::subrange<ranges::iterator_t<V>> next_ = std::move(next);,以及bool trailing_empty_ = false;。
std::ranges::split_view::iterator::base
| |
(C++20 起) | |
等价于 return cur_;。
std::ranges::split_view::iterator::operator*
| |
(C++20 起) | |
等价于 return {cur_, next_.begin()};。
std::ranges::split_view::iterator::operator++
| |
(1) | (C++20 起) |
| |
(2) | (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) |
比较底层迭代器 (函数) |