Namespaces
Variants

std:: valarray

From cppreference.net
Défini dans l'en-tête <valarray>
template < class T >
class valarray ;

std::valarray est la classe pour représenter et manipuler des tableaux de valeurs. Elle prend en charge les opérations mathématiques élément par élément et diverses formes d'opérateurs d'indice généralisés, le découpage et l'accès indirect.

Table des matières

Notes

std::valarray et les classes auxiliaires sont définis pour être exempts de certaines formes d'aliasing, permettant ainsi aux opérations sur ces classes d'être optimisées de manière similaire à l'effet du mot-clé restrict dans le langage de programmation C. De plus, les fonctions et opérateurs prenant des arguments valarray sont autorisés à renvoyer des objets proxy pour permettre au compilateur d'optimiser une expression telle que v1 = a * v2 + v3 ; comme une boucle unique exécutant v1 [ i ] = a * v2 [ i ] + v3 [ i ] ; évitant ainsi tout temporaire ou passages multiples. Cependant, les modèles d'expression rendent la même technique d'optimisation disponible pour tout conteneur C++, et la majorité des bibliothèques numériques préfèrent les modèles d'expression aux valarrays pour leur flexibilité. Certaines implémentations de la bibliothèque standard C++ utilisent des modèles d'expression pour implémenter des opérations efficaces sur std::valarray (par exemple GNU libstdc++ et LLVM libc++). Les valarrays sont rarement optimisés davantage, comme dans Intel Integrated Performance Primitives .

Paramètres du modèle

T - le type des éléments. Le type doit satisfaire aux NumericType exigences

Types membres

Type de membre Définition
value_type T

Fonctions membres

construit un nouveau tableau numérique
(fonction membre publique)
détruit le tableau numérique
(fonction membre publique)
assigne le contenu
(fonction membre publique)
obtient/définit un élément, une tranche ou un masque du valarray
(fonction membre publique)
applique un opérateur arithmétique unaire à chaque élément du valarray
(fonction membre publique)
applique un opérateur d'affectation composée à chaque élément du valarray
(fonction membre publique)
échange avec un autre valarray
(fonction membre publique)
retourne la taille du valarray
(fonction membre publique)
modifie la taille du valarray
(fonction membre publique)
calcule la somme de tous les éléments
(fonction membre publique)
retourne le plus petit élément
(fonction membre publique)
retourne le plus grand élément
(fonction membre publique)
décale les éléments du valarray avec remplissage par des zéros
(fonction membre publique)
décalage circulaire des éléments du valarray
(fonction membre publique)
applique une fonction à chaque élément d'un valarray
(fonction membre publique)

Fonctions non membres

spécialise l'algorithme std::swap
(modèle de fonction)
surcharge std::begin
(modèle de fonction)
spécialise std::end
(modèle de fonction)
applique des opérateurs binaires à chaque élément de deux valarrays, ou d'un valarray et d'une valeur
(modèle de fonction)
compare deux valarrays ou un valarray avec une valeur
(modèle de fonction)
applique la fonction abs à chaque élément du valarray
(modèle de fonction)
Fonctions exponentielles
applique la fonction std::exp à chaque élément du valarray
(fonction template)
applique la fonction std::log à chaque élément du valarray
(modèle de fonction)
applique la fonction std::log10 à chaque élément du valarray
(modèle de fonction)
Fonctions de puissance
applique la fonction std::pow à deux valarrays ou à un valarray et une valeur
(modèle de fonction)
applique la fonction std::sqrt à chaque élément du valarray
(fonction template)
Fonctions trigonométriques
applique la fonction std::sin à chaque élément du valarray
(modèle de fonction)
applique la fonction std::cos à chaque élément du valarray
(modèle de fonction)
applique la fonction std::tan à chaque élément du valarray
(modèle de fonction)
applique la fonction std::asin à chaque élément du valarray
(modèle de fonction)
applique la fonction std::acos à chaque élément du valarray
(modèle de fonction)
applique la fonction std::atan à chaque élément du valarray
(modèle de fonction)
applique la fonction std::atan2 à un valarray et une valeur
(modèle de fonction)
Fonctions hyperboliques
applique la fonction std::sinh à chaque élément du valarray
(modèle de fonction)
applique la fonction std::cosh à chaque élément du valarray
(modèle de fonction)
applique la fonction std::tanh à chaque élément du valarray
(modèle de fonction)

Classes d'assistance

Tranche de type BLAS d'un valarray : index de départ, longueur, pas
(classe)
proxy vers un sous-ensemble d'un valarray après application d'un slice
(modèle de classe)
slice généralisé d'un valarray : index de départ, ensemble de longueurs, ensemble de pas
(classe)
proxy vers un sous-ensemble d'un valarray après application d'un gslice
(modèle de classe)
proxy vers un sous-ensemble d'un valarray après application d'un masque booléen operator[]
(modèle de classe)
proxy vers un sous-ensemble d'un valarray après application indirecte operator[]
(modèle de classe)

Guides de déduction (depuis C++17)

Voir aussi

alias de commodité pour basic_simd qui peut spécifier sa largeur
(alias de modèle)
alias de commodité pour basic_simd_mask qui peut spécifier sa largeur
(alias de modèle)
(parallelism TS v2)
type vectoriel parallèle aux données
(modèle de classe)
(parallelism TS v2)
type parallèle aux données avec le type d'élément bool
(modèle de classe)