std::valarray<T>::end
iterator end();
|
(1) | (desde C++11) |
const_iterator end() const;
|
(2) | (desde C++11) |
Devuelve un iterador que hace referencia al siguiente al último elemento en la array numérica.
El iterador devuelto por esta función se invalida cuando la función miembro resize() se llama en v o cuando la vida útil de v termina, lo que ocurra primero.
Parámetros
| v | - | una array numérica |
Valor de retorno
Iterador al siguiente al último elemento en la array numérica.
Excepciones
Puede lanzar excepciones definidas por la implementación.
Notas
A diferencia de otras funciones que toman argumentos std::valarray, end() no puede aceptar los tipos de reemplazo (como los tipos producidos por plantillas de expresión) que pueden devolverse de expresiones que involucran valarrays: (v1 + v2).end() no es portátil, se debe usar std::valarray<T>(v1 + v2).end() en su lugar.
La intención de esta función es permitir que bucles for basados en rango funcionen con valarrays, no proporcionar semántica de contenedor.
Ejemplo
#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; });
}
Salida:
Hello, C++!
Informes de defectos
Los siguientes informes de defectos que cambian el comportamiento se aplicaron retroactivamente a estándares C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento como se publicó | Comportamiento correcto |
|---|---|---|---|
| LWG 2058 | C++11 | 1. end() se requería que soportara tipos de reemplazo2. no se especificaba cuándo se invalidarían los iteradores devueltos |
1. no requerido 2. especificado |
| P3016R6 | C++11 | las funciones no miembro end() introdujeron inconsistencia en el acceso por rango
|
se cambió end() a funciones miembro
|
Ver también
(C++11) |
obtiene el iterador de inicio de valarray (función miembro pública) |