std:: begin (std::valarray)
|
template
<
class
T
>
/* voir ci-dessous */ begin ( valarray < T > & v ) ; |
(1) | (depuis C++11) |
|
template
<
class
T
>
/* voir ci-dessous */ begin ( const valarray < T > & v ) ; |
(2) | (depuis C++11) |
La surcharge de
std::begin
pour
valarray
retourne un itérateur de type non spécifié se référant au premier élément du tableau numérique.
- satisfaire aux exigences de mutable LegacyRandomAccessIterator ,
|
(depuis C++20) |
-
avoir un type membre
value_type, qui estT, et -
avoir un type membre
reference, qui estT&.
- satisfaire aux exigences d'un itérateur constant LegacyRandomAccessIterator ,
|
(depuis C++20) |
-
avoir un type membre
value_type, qui estT, et -
avoir un type membre
reference, qui estconst T&.
L'itérateur retourné par cette fonction est invalidé lorsque la fonction membre
resize()
est appelée sur
v
ou lorsque la durée de vie de
v
se termine, selon la première éventualité.
Table des matières |
Paramètres
| v | - | un tableau numérique |
Valeur de retour
Itérateur vers la première valeur dans le tableau numérique.
Exceptions
Peut lever des exceptions définies par l'implémentation.
Notes
Contrairement aux autres fonctions qui prennent des arguments de type
std::valarray
,
begin()
ne peut pas accepter les types de remplacement (tels que les types produits par les modèles d'expression) qui peuvent être renvoyés par des expressions impliquant des valarrays :
std::
begin
(
v1
+
v2
)
n'est pas portable,
std::
begin
(
std::
valarray
<
T
>
(
v1
+
v2
)
)
doit être utilisé à la place.
L'intention de cette fonction est de permettre aux boucles for à portée de fonctionner avec les valarrays, non pas de fournir une sémantique de conteneur.
Exemple
#include <algorithm> #include <iostream> #include <valarray> void show(const std::valarray<int>& v) { std::for_each(std::begin(v), std::end(v), [](int c) { std::cout << c << ' '; }); std::cout << '\n'; }; int main() { const std::valarray<int> x{47, 70, 37, 52, 90, 23, 17, 33, 22, 16, 21, 4}; const std::valarray<int> y{25, 31, 71, 56, 21, 21, 15, 34, 21, 27, 12, 6}; show(x); show(y); const std::valarray<int> z{x + y}; for (char c : z) std::cout << c; }
Sortie :
47 70 37 52 90 23 17 33 22 16 21 4 25 31 71 56 21 21 15 34 21 27 12 6 Hello, C++!
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 2058 | C++11 |
1.
begin()
devait supporter les types de remplacement
2. il n'était pas spécifié quand les itérateurs retournés seraient invalidés |
1. non requis
2. spécifié |
Voir aussi
|
(C++11)
|
spécialise
std::end
(modèle de fonction) |