Namespaces
Variants

operator+ (std::counted_iterator)

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
friend constexpr counted_iterator operator + (

std:: iter_difference_t < I > n, const counted_iterator & x )

requires std:: random_access_iterator < I > ;
(seit C++20)

Gibt einen Iterator-Adapter zurück, der um n weitergeschaltet wird. Das Verhalten ist undefiniert, wenn n größer ist als die in x aufgezeichnete Länge (d.h. wenn x + n zu undefiniertem Verhalten führt).

Diese Funktion ist für gewöhnliches unqualified oder qualified lookup nicht sichtbar und kann nur durch argument-dependent lookup gefunden werden, wenn std::counted_iterator<I> eine assoziierte Klasse der Argumente ist.

Inhaltsverzeichnis

Parameter

n - die Anzahl der Positionen, um die der Iterator inkrementiert werden soll
x - der Iterator-Adapter, der inkrementiert werden soll

Rückgabewert

Ein Iterator-Adapter gleich x + n .

Beispiel

#include <iostream>
#include <iterator>
#include <list>
#include <vector>
int main()
{
    std::vector v{0, 1, 2, 3, 4, 5};
    std::counted_iterator<std::vector<int>::iterator> p{v.begin() + 1, 4};
    std::cout << "*p:" << *p << ", count:" << p.count() << '\n';
    std::counted_iterator<std::vector<int>::iterator> q{2 + p};
    std::cout << "*q:" << *q << ", count:" << q.count() << '\n';
    std::list l{6, 7, 8, 9};
    std::counted_iterator<std::list<int>::iterator> r{l.begin(), 3};
    std::cout << "*r:" << *r << ", count:" << r.count() << '\n';
//  auto s{2 + r}; // Fehler: Der zugrundeliegende Iterator implementiert
                   // nicht std::random_access_iterator
}

Ausgabe:

*p:1, count:4
*q:3, count:2
*r:6, count:3

Siehe auch

erhöht oder verringert den counted_iterator
(öffentliche Elementfunktion)
(C++20)
berechnet die Distanz zwischen zwei Iterator-Adaptoren
(Funktions-Template)
berechnet die signierte Distanz zum Ende
(Funktions-Template)