Classe gslice_array
Una classe modello interna e ausiliaria che supporta la sezione generale oggetti immettendo le operazioni tra matrici di sottoinsieme definite dalla 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 descrive un oggetto che contiene un riferimento a un oggetto va di classe valarray<Tipo>, con un oggetto gs di classe gslice che descrive la sequenza di elementi choose dall'oggetto di valarray<Type>.
Si costruisce un oggetto di gslice_array<Type> solo scrive un'espressione del tipo vai gs []. Le funzioni membro delle classi 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 utilizzato direttamente nel programma. Una classe modello ausiliaria interna viene invece utilizzata dall'operatore di indice della sezione:
::<operator[] > (<const>gslice&) digslice_arrayTipo valarrayTipo.
Si costruisce un oggetto di gslice_array<Type> solo scrive un'espressione del tipo va[gsl], per una sezione gsl di vavalarray. Le funzioni membro delle classi 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 per la routine siano validi.
Esempio
Vedere l'esempio relativo gslice::gslice per un esempio di come dichiarare e utilizzare uno slice_array.
Requisiti
Header: <valarray>
Spazio dei nomi: std