std:: end (std::valarray)
|
template
<
class
T
>
/* ver más abajo */ end ( valarray < T > & v ) ; |
(1) | (desde C++11) |
|
template
<
class
T
>
/* ver más abajo */ end ( const valarray < T > & v ) ; |
(2) | (desde C++11) |
La sobrecarga de
std::end
para
valarray
devuelve un iterador de tipo no especificado que hace referencia al elemento siguiente al último en el array numérico.
- cumplir con los requisitos de mutable LegacyRandomAccessIterator ,
|
(desde C++20) |
-
tener un tipo miembro
value_type, que esT, y -
tener un tipo miembro
reference, que esT&.
- cumplir con los requisitos de constant LegacyRandomAccessIterator ,
|
(desde C++20) |
-
tener un tipo miembro
value_type, que esT, y -
tener un tipo miembro
reference, que esconst T&.
El iterador devuelto por esta función se invalida cuando se llama a la función miembro
resize()
en
v
o cuando termina el tiempo de vida de
v
, lo que ocurra primero.
Contenidos |
Parámetros
| v | - | un array numérico |
Valor de retorno
Iterador a una posición después del último valor en el arreglo 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 devolverse de expresiones que involucran valarrays:
std::
end
(
v1
+
v2
)
no es portable,
std::
end
(
std::
valarray
<
T
>
(
v1
+
v2
)
)
debe usarse en su lugar.
La intención de esta función es permitir que los bucles de 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(std::begin(va), std::end(va), [](char c){ std::cout << c; }); }
Salida:
Hello, C++!
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2058 | C++11 |
1.
end()
estaba requerido para soportar tipos de reemplazo
2. no estaba especificado cuándo se invalidarán los iteradores devueltos |
1. no requerido
2. especificado |
Véase también
|
(C++11)
|
sobrecarga
std::begin
(plantilla de función) |