Condividi tramite


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 slicee la distanza tra gli elementi in ogni sliceoggetto .

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

Vedi anche

Thread safety nella libreria standard C++