Classe gslice_array
Modello di classe ausiliario interno che supporta oggetti slice generali fornendo operazioni tra matrici di subset definite dalla sezione generale di un oggetto valarray
.
Sintassi
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
}
Osservazioni:
La classe descrive un oggetto che archivia un riferimento a un oggetto va
della classe valarray<Type>
, insieme a un oggetto gs
della classe gslice
, che descrive la sequenza di elementi da selezionare dall'oggetto valarray<Type>
.
Si costruisce un gslice_array<Type>
oggetto solo scrivendo un'espressione del formato va[gs]
. Le funzioni membro della classe gslice_array
si comportano quindi come le firme di funzione corrispondenti definite per valarray<Type>
, ad eccezione del fatto che è interessata solo la sequenza di elementi selezionati.
Il modello di classe viene creato indirettamente da determinate valarray
operazioni e non può essere usato direttamente nel programma. Un modello di classe ausiliario interno viene invece usato dall'operatore slice
di indice:
gslice_array<Type> valarray<Type>::operator[]( const gslice& )
.
Si costruisce un gslice_array<Type>
oggetto solo scrivendo un'espressione del formato va[gsl]
, per un slice
gsl
oggetto di valarray
va
. Le funzioni membro della classe gslice_array
si comportano quindi come le firme di funzione corrispondenti definite per valarray<Type>
, ad eccezione del fatto che è interessata solo la sequenza di elementi selezionati. La sequenza controllata da gslice_array
è definita dai tre parametri del slice
costruttore, l'indice del primo elemento nel primo slice
, il numero di elementi in ogni slice
e la distanza tra gli elementi in ogni slice
oggetto .
Nell'esempio seguente :
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
Affinché la procedura sia valida, è necessario che gli indici siano validi.
Esempio
Vedere l'esempio per gslice::gslice
un esempio di come dichiarare e usare un slice_array.
Requisiti
Intestazione:<valarray>
Spazio dei nomi: std