Namespaces
Variants

std::valarray<T>::end

De es.cppreference.net
 
 
 
 
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 reemplazo
2. 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)