std::ranges::repeat_view<W, Bound>::iterator
struct /*iterator*/; | (с C++23) (только для примера*) |
Тип результата repeat_view::begin.
Типы членов
| Тип члена | Определение |
|---|---|
index-type |
|
iterator_concept | std::random_access_iterator_tag |
iterator_category | std::random_access_iterator_tag |
value_type | W |
difference_type |
|
Члены данных
| Название члена | Определение |
|---|---|
value_ (private) | Указатель типа const W*, хранящий указатель на значение для повторения.(только для примера*) |
current_ (private) | Объект типа /*index-type*/, хранящий текущую позицию.(только для примера*) |
Члены-функции
| (конструктор)
(C++23) | создаёт итератор (публичный член-функция) |
| operator*
(C++23) | возвращает текущий поддиапазон (публичный член-функция) |
| operator[]
(C++23) | доступ к элементу по индексу (публичный член-функция) |
| operator++operator++(int)operator--operator--(int)operator+=operator-=
(C++23) | продвигает или уменьшает подлежащий итератор (публичный член-функция) |
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) (только для примера*) |
-
value_значениемnullptr_tчерез его инициализатор по умолчанию; -
index_значением по умолчанию (= /*index-type*/()).
value_ значением value и bound_ значением b. Если Bound не равно std::unreachable_sentinel_t, то b должно быть неотрицательным. Этот конструктор не входит в публичный интерфейс. std::ranges::repeat_view::iterator::operator*
constexpr const W& operator*() const noexcept; | (с C++23) |
Эквивалентно return *value_;.
std::ranges::repeat_view::iterator::operator[]
constexpr const W& operator[]( difference_type n ) const noexcept; | (с C++23) |
Эквивалентно return *(*this + n);.
std::ranges::repeat_view::iterator::operator++
constexpr /*iterator*/& operator++(); | (1) | (с C++23) |
constexpr void operator++(int); | (2) | (с C++23) |
++current_; return *this;.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) |
--current_; return *this;. Если Bound не равно std::unreachable_sentinel_t, то bound_ должно быть положительным.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_t, то (bound_ + n) должно быть неотрицательным.
std::ranges::repeat_view::iterator::operator-=
constexpr /*iterator*/& operator-=( difference_type n ); | (с C++23) |
Эквивалентно current_ -= n; return *this;. Если Bound не равно std::unreachable_sentinel_t, то (bound_ - n) должно быть неотрицательным.
Независимые функции
| operator==operator<=>
(C++23) | сравнивает подлежащие итераторы (функция) |
| operator+operator-
(C++23) | выполняет арифметические операции с итераторами (функция) |
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) |
x.current_ == y.current_.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) |
i -= n; return i;.return static_cast<difference_type>(x.current_) - static_cast<difference_type>(y.current_);.Эти функции не видны для обычного неквалифицированного или квалифицированного поиска и могут быть найдены только с помощью поиска с учётом аргументов, когда iterator является ассоциированным классом аргументов.
Примечания
iterator всегда random_access_iterator.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/repeat_view/iterator