std::ranges::stride_view<V>::iterator<Const>:operator++,--,+=,-=
Von cppreference.com
< cpp | ranges | stride view | iterator
| constexpr /*iterator*/& operator++(); |
(1) | (seit C++23) |
| constexpr void operator++( int ); |
(2) | (seit C++23) |
| constexpr /*iterator*/ operator++( int ) requires ranges::forward_range<Base>; |
(3) | (seit C++23) |
| constexpr /*Iterator*/& operator--() requires ranges::bidirectional_range<Base>; |
(4) | (seit C++23) |
| constexpr /*Iterator*/ operator--( int ) requires ranges::bidirectional_range<Base>; |
(5) | (seit C++23) |
| constexpr /*Iterator*/& operator+=( difference_type n ) requires ranges::random_access_range<Base>; |
(6) | (seit C++23) |
| constexpr /*Iterator*/& operator-=( difference_type n ) requires ranges::random_access_range<Base>; |
(7) | (seit C++23) |
Inkrementiert oder dekrementiert den Iterator.
Seien current_, end_, stride_ und missing_ die Datenmember des Iterators.
1) Äquivalent zuVor dem Aufruf sollte
missing_ = ranges::advance(current_, stride_, end_); return *this
current_ nicht gleich end_ sein.2) Äquivalent zu ++*this;.
3) Äquivalent zu auto tmp = *this; ++*this; return tmp;.
4) Äquivalent zu
ranges::advance(current_, missing_ - stride_); missing_ = 0; return *this;
5) Äquivalent zu auto tmp = *this; --*this; return tmp;.
6) Äquivalent zu
if (n > 0) { ranges::advance(current_, stride_ * (n - 1)); missing_ = ranges::advance(current_, stride_, end_); } else if (n < 0) { ranges::advance(current_, stride_ * n + missing_); missing_ = 0; } return *this;
Wenn n > 0, dann muss vor dem Aufruf dieser Funktion ranges::distance(current_, end_) größer als stride_ * (n - 1) sein.
Beachten Sie, dass wenn n < 0, ranges::distance(current_, end_) immer größer als (nicht-positive) stride_ * (n - 1) ist.7) Äquivalent zu return *this += -n;
Inhalt |
[edit] Parameter
| n | - | Position relativ zur aktuellen Position |
[edit] Rückgabewert
1,4,6,7) *this
2) (keiner)
3,5) eine Kopie von *this, die vor der Änderung erstellt wurde
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| (C++23) |
führt Iterator-Arithmetik durch (Funktion) |