std::valarray<T>::begin
iterator begin();
|
(1) | (depuis C++11) |
const_iterator begin() const;
|
(2) | (depuis C++11) |
Renvoie un itérateur référençant le premier élément du tableau numérique.
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é.
Paramètres
| v | - | un tableau numérique |
Valeur de retour
Itérateur vers le premier élément du tableau numérique.
Exceptions
Peut lancer des exceptions définies par l'implémentation.
Notes
Contrairement aux autres fonctions qui prennent des arguments std::valarray, begin() ne peut pas accepter les types de remplacement (tels que les types produits par les templates d'expression) qui peuvent être retournés par des expressions impliquant des valarrays : (v1 + v2).begin() n'est pas portable, std::valarray<T>(v1 + v2).begin() doit être utilisé à la place.
L'intention de cette fonction est de permettre aux boucles for basées sur une plage de fonctionner avec les valarrays, et non de fournir une sémantique de conteneur.
Exemple
#include <algorithm>
#include <iostream>
#include <valarray>
void show(const std::valarray<int>& v)
{
std::for_each(v.begin(), v.end(), [](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 suivants, modifiant le comportement, ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement tel que publié | Comportement correct |
|---|---|---|---|
| LWG 2058 | C++11 | 1. begin() devait supporter les types de remplacement2. il n'était pas spécifié quand les itérateurs retournés seraient invalidés |
1. non requis 2. spécifié |
| P3016R6 | C++11 | les fonctions non membres begin() ont introduit une incohérence dans l'accès par plage
|
a changé begin() en fonctions membres
|
Voir aussi
(C++11) |
obtient l'itérateur de fin de valarray (fonction membre publique) |