Condividi tramite


gslice_array Class

Una classe modello interna e ausiliaria che supporta la sezione generale oggetti fornendo le operazioni tra matrici del sottoinsieme definite nella sezione generale di un valarray.

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
}

Note

La classe viene illustrato un oggetto che archivia un riferimento a un oggetto va di classe valarray<Type>, con un oggetto gs di classe gslice che descrive la sequenza di elementi per scegliere dall'oggetto valarray<Type>.

Costruisce un oggetto gslice_array<Type> solo scrive un'espressione del form andare gs [].Le funzioni membro di classe gslice_array quindi si comportano come le firme della funzione corrispondenti definite per valarray<Type>, ma solo la sequenza di elementi selezionati viene modificata.

La classe modello viene creata indirettamente da determinate operazioni valarray e non può essere utilizzata direttamente nel programma.Una classe modello ausiliaria interna viene utilizzata dall'operatore di indice della sezione:

gslice_array<Tipo> valarray<Tipo>::operator[] (constgslice&).

Costruisce un oggetto gslice_array<Type> solo scrive un'espressione del form va[gsl], per una sezione gslvavalarray.Le funzioni membro di classe gslice_array quindi si comportano come le firme della funzione corrispondenti definite per valarray<Type>, ma solo la sequenza di elementi selezionati viene modificata.La sequenza controllata da gslice_array è definita da tre parametri del costruttore della sezione, indice del primo elemento della prima sezione, il numero di elementi in ogni sezione e la distanza tra gli elementi in ogni sezione.

Nell'esempio riportato di seguito:

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

Gli indici devono essere validi che la routine siano validi.

Esempio

Vedere l'esempio relativo gslice::gslice per un esempio di come dichiarare e utilizzare uno slice_array.

Requisiti

intestazione: <valarray>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

Thread safety della libreria C++ standard