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

来自cppreference.com
< cpp‎ | ranges‎ | iota view
 
 
 
std::ranges::iota_view
成员函数
推导指引
迭代器
iota_view::iterator::iterator
iota_view::iterator::operator*
iota_view::iterator::operator[]
iota_view::iterator::operator++
iota_view::iterator::operator++(int)
iota_view::iterator::operator--
iota_view::iterator::operator--(int)
iota_view::iterator::operator+=
iota_view::iterator::operator-=
operator==(iota_view::iterator)
operator<(iota_view::iterator)
operator>(iota_view::iterator)
operator<=(iota_view::iterator)
operator>=(iota_view::iterator)
operator<=>(iota_view::iterator)
operator+(iota_view::iterator)
operator-(iota_view::iterator)
哨位
 
template<class W, class Bound>
struct /*iterator*/;

iota_view::begin 的返回类型。

此类的名字(此处示作 /*iterator*/)是未指定的。

典型实现保有一个 W 类型数据成员(此处示作 value_):用于解引用的值。

它若 W 实现 __Advanceable 则此为 random_access_iterator ,若 W 实现 __Decrementable 则为 bidirectional_iterator ,若 W 实现 incrementable 则为 forward_iterator ,否则为 input_iterator 。然而它只是遗留输入迭代器 (LegacyInputIterator)

成员函数

std::ranges::iota_view::iterator::iterator

constexpr explicit iterator(W value);

value 初始化仅用于阐释的数据成员 value_ 。此值将为 operator* 所返回并为 operator++ 所增加。

std::ranges::iota_view::iterator::operator*

constexpr W operator*() const noexcept(std::is_nothrow_copy_constructible_v<W>);

按值返回当前值(换言之,这是只读视图)。

std::ranges::iota_view::iterator::operator++

constexpr iterator& operator++()
(1)
constexpr void operator++(int)
(2)
constexpr iterator operator++(int) requires std::incrementable<W>;
(3)
1) 等价于 ++value_; return *this;
2) 等价于 ++value_;
3) 等价于 auto tmp = *this; ++value_; return tmp;

std::ranges::iota_view::iterator::operator--

constexpr iterator& operator--() requires __Decrementable<W>;
(1)
constexpr iterator operator--(int) requires __Decrementable<W>;
(2)
1) 等价于 --value_; return *this;
2) 等价于 auto tmp = *this; --value_; return tmp;

std::ranges::iota_view::iterator::operator[]

constexpr W operator[](difference_type n) const requires __Advanceable<W>;

等价于 return W(value_ + n);