Namensräume
Varianten
Aktionen

operator+,-(ranges::stride_view::Iterator)

Von cppreference.com
< cpp‎ | ranges‎ | stride view‎ | iterator
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
friend constexpr /*Iterator*/

    operator+( const /*Iterator*/& i, difference_type n )

        requires ranges::random_access_range<Base>;
(1) (seit C++23)
friend constexpr /*Iterator*/

    operator+( difference_type n, const /*Iterator*/& i )

        requires ranges::random_access_range<Base>;
(2) (seit C++23)
friend constexpr /*Iterator*/

    operator-( const /*Iterator*/& i, difference_type n )

        requires ranges::random_access_range<Base>;
(3) (seit C++23)
friend constexpr difference_type

    operator-( const /*Iterator*/& x, const /*Iterator*/& y )
        requires std::sized_sentinel_for<ranges::iterator_t<Base>,

                                         ranges::iterator_t<Base>>;
(4) (seit C++23)
friend constexpr difference_type

    operator-( std::default_sentinel_t, const /*Iterator*/& x )
        requires std::sized_sentinel_for<ranges::sentinel_t<Base>,

                                         ranges::iterator_t<Base>>;
(5) (seit C++23)
friend constexpr difference_type

    operator-( const /*Iterator*/& x, std::default_sentinel_t s )
        requires std::sized_sentinel_for<ranges::sentinel_t<Base>,

                                         ranges::iterator_t<Base>>;
(6) (seit C++23)

Inkrementiert oder dekrementiert den Iterator.

Seien current_, end_, stride_ und missing_ die Datenmember des Iterators.

1,2) Äquivalent zu auto r = i; r += n; return r;.
3) Äquivalent zu auto r = i; r -= n; return r;.
4) Sei N gleich x.current_ - y.current_. Gibt zurück
  • (N + x.missing_ - y.missing_) / x.stride_, falls Base forward_range modelliert.
  • -/*div-ceil*/(-N, x.stride_), falls N < 0.
  • /*div-ceil*/(N, x.stride_) andernfalls.
5) Äquivalent zu return /*div-ceil*/(x.end_ - x.current_, x.stride_);.
6) Äquivalent zu return -(s - x);.

Diese Funktionen sind nicht für normale unqualifizierte oder qualifizierte Suchen sichtbar und können nur durch Argument-abhängige Suche gefunden werden, wenn stride_view::Iterator<Const> eine zugeordnete Klasse der Argumente ist.

Inhalt

[bearbeiten] Parameter

x, y, i - die Iteratoren
s - ein Sentinel

[bearbeiten] Rückgabewert

1,2) Ein inkrementierter Iterator
3) Ein dekrementierter Iterator
4) Eine Distanz zwischen gegebenen Iteratoren
5,6) Eine Distanz zwischen gegebenem Iterator und Sentinel

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

bewegt den zugrundeliegenden Iterator vorwärts oder rückwärts
(public member function) [edit]