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 arrayv
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(){conststd::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) |