Partager via


Classe gslice_array

Modèle de classe interne auxiliaire qui prend en charge les objets de tranche généraux en fournissant des opérations entre des tableaux de sous-ensembles définis par la tranche générale d’un valarray.

Syntaxe

template <class Type>
class gslice_array : public gsplice {
public:
    typedef Type value_type;
    void operator=(const valarray<Type>& x) const;

    void operator=(const Type& x) const;

    void operator*=(const valarray<Type>& x) const;

    void operator/=(const valarray<Type>& x) const;

    void operator%=(const valarray<Type>& x) const;

    void operator+=(const valarray<Type>& x) const;

    void operator-=(const valarray<Type>& x) const;

    void operator^=(const valarray<Type>& x) const;

    void operator&=(const valarray<Type>& x) const;

    void operator|=(const valarray<Type>& x) const;

    void operator<<=(const valarray<Type>& x) const;

    void operator>>=(const valarray<Type>& x) const;

// The rest is private or implementation defined
}

Notes

La classe décrit un objet qui stocke une référence à un objet de classevalarray<Type>, ainsi qu’un objet gs va de classegslice, qui décrit la séquence d’éléments à sélectionner dans l’objetvalarray<Type>.

Vous construisez un gslice_array<Type> objet uniquement en écrivant une expression du formulaire va[gs]. Les fonctions membres de la classe gslice_array se comportent ensuite comme les signatures de fonction correspondantes définies pour valarray<Type>, sauf que seule la séquence d’éléments sélectionnés est affectée.

Le modèle de classe est créé indirectement par certaines valarray opérations et ne peut pas être utilisé directement dans le programme. Un modèle de classe auxiliaire interne est utilisé à la place par l’opérateur d’indice slice :

gslice_array<Type> valarray<Type>::operator[]( const gslice& ).

Vous construisez un gslice_array<Type> objet uniquement en écrivant une expression du formulaire va[gsl], pour un slice gsl objet de valarray va. Les fonctions membres de la classe gslice_array se comportent ensuite comme les signatures de fonction correspondantes définies pour valarray<Type>, sauf que seule la séquence d’éléments sélectionnés est affectée. La séquence contrôlée par le gslice_array paramètre est définie par les trois paramètres du slice constructeur, l’index du premier élément dans le premier slice, le nombre d’éléments de chaque sliceélément et la distance entre les éléments de chaque sliceélément.

Dans l’exemple suivant :

const size_t lv[] = {2, 3};
const size_t dv[] = {7, 2};
const valarray<size_t> len(lv, 2), str(dv, 2);

// va[gslice(3, len, str)] selects elements with
//   indices 3, 5, 7, 10, 12, 14

Les index doivent être valides pour que la procédure soit valide.

Exemple

Consultez l’exemple pour gslice::gslice obtenir un exemple de déclaration et d’utilisation d’un slice_array.

Spécifications

Header :<valarray>

Espace de noms : std

Voir aussi

Sécurité des threads dans la bibliothèque standard C++