Namespaces
Variants

std:: begin (std::valarray)

From cppreference.net
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.

1) Le type de retour doit
(depuis C++20)
  • avoir un type membre value_type , qui est T , et
  • avoir un type membre reference , qui est T& .
2) Le type de retour doit
(depuis C++20)
  • avoir un type membre value_type , qui est T , et
  • avoir un type membre reference , qui est const 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

spécialise std::end
(modèle de fonction)