Namespaces
Variants

std:: end (std::valarray)

From cppreference.net
template < class T >
/* voir ci-dessous */ end ( valarray < T > & v ) ;
(1) (depuis C++11)
template < class T >
/* voir ci-dessous */ end ( const valarray < T > & v ) ;
(2) (depuis C++11)

La surcharge de std::end pour valarray retourne un itérateur de type non spécifié se référant à l'élément situé après le dernier é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 l'élément suivant le dernier élément du tableau numérique.

Exceptions

Peut lever des exceptions définies par l'implémentation.

Notes

Contrairement aux autres fonctions qui prennent des arguments std::valarray , end() 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:: end ( v1 + v2 ) n'est pas portable, std:: end ( 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>
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; });
}

Sortie :

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 tel que publié Comportement correct
LWG 2058 C++11 1. end() 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

surcharge std::begin
(modèle de fonction)