std::end(std::valarray)
template< class T > /*no especificado 1*/ end( valarray<T>& v ); |
(1) | (desde C++11) |
template< class T > /*no especificado 2*/ end( const valarray<T>& v ); |
(2) | (desde C++11) |
La sobrecarga de std::end for valarray devuelve un iterador de tipo no especificado que se refiere a un elemento más allá del último elemento en el array numérico.
El iterador obtenido de esta plantilla de función se invalida cuando se llama a la función miembro resize() en el array v o cuando el tiempo de vida de v termina, lo que ocurra primero.
Parámetros
| v | - | Un array numérico. |
Valor de retorno
Iterador a uno más allá del último valor el array numérico.
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 ser devueltos por expresiones que involucran valarrays: std::end(v1 + v2) no es portátil, std::end(std::valarray<T>(v1 + v2)) debe usarse en su lugar.
La intención de esta función es permitir que los bucles for basados en rango funcionen con valarrays, no proporcionar semántica de contenedor.
Ejemplo
#include <iostream>
#include <valarray>
#include <algorithm>
int main()
{
const std::valarray<char> va {
'H', 'o', 'l', 'a',
',', ' ',
'C', '+', '+', '!', '\n'
};
std::for_each(
std::begin(va),
std::end(va),
[](char c) {
std::cout << c;
});
}
Posible salida:
Hola, C++!
Véase también
(C++11) |
Especialización de std::begin. (plantilla de función) |