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