std::valarray<T>::end
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ützen2. 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) |