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.
Contenido |
[editar] Parámetros
v | - | Un array numérico. |
[editar] Valor de retorno
Iterador a uno más allá del último valor el array numérico.
[editar] Excepciones
Puede lanzar excepciones definidas por la implementación.
[editar] 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.
[editar] 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++!
[editar] Véase también
(C++11) |
Especialización de std::begin. (plantilla de función) |