Namespaces
Variants

std::valarray<T>::begin

De fr.cppreference.net
 
 
 
 
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 remplacement
2. 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)