Namespaces
Variants

std::valarray<T>::end

Von de.cppreference.net
 
 
 
 
iterator       end();
(1) (seit C++11)
const_iterator end() const;
(2) (seit C++11)

Gibt einen Iterator zurück, der auf das Element nach dem letzten im numerischen Array verweist.

Der von dieser Funktion zurückgegebene Iterator wird ungültig, wenn die Mitgliedsfunktion resize() auf v aufgerufen wird oder wenn die Lebensdauer von v endet, je nachdem, was zuerst eintritt.

Parameter

v - ein numerisches Array

Rückgabewert

Iterator, der auf das Element nach dem letzten im numerischen Array verweist.

Ausnahmen

Kann implementationsdefinierte Ausnahmen werfen.

Anmerkungen

Im Gegensatz zu anderen Funktionen, die std::valarray-Argumente akzeptieren, kann end() keine Ersatztypen (wie die von Ausdrucksvorlagen erzeugten Typen) akzeptieren, die von Ausdrücken mit Valarrays zurückgegeben werden können: (v1 + v2).end() ist nicht portabel, stattdessen muss std::valarray<T>(v1 + v2).end() verwendet werden.

Der Zweck dieser Funktion ist es, bereichsbasierte for-Schleifen mit Valarrays zu ermöglichen, nicht um Containersemantik bereitzustellen.

Beispiel

#include <algorithm>
#include <iostream>
#include <valarray>

int main()
{
    const std::valarray<char> va
    {
        'H', 'e', 'l', 'l', 'o', 
        ',', ' ', 
        'C', '+', '+', '!', '\n'
    };

    std::for_each(va.begin(), va.end(), [](char c){ std::cout << c; });
}

Ausgabe:

Hello, C++!

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2058 C++11 1. end() musste Ersatztypen unterstützen
2. es war nicht spezifiziert, wann die zurückgegebenen Iteratoren ungültig werden
1. nicht erforderlich
2. spezifiziert
P3016R6 C++11 Nicht-Mitgliedsfunktionen end() führten Inkonsistenz beim Bereichszugriff ein änderte end() zu Mitgliedsfunktionen

Siehe auch

(C++11)
erhält den Startiterator von valarray
(öffentliche Mitgliedsfunktion)