Freigeben über


gslice_array-Klasse

Eine interne Hilfsklassenvorlage, die allgemeine Segmentobjekte unterstützt, indem Vorgänge zwischen Teilmengearrays bereitgestellt werden, die vom allgemeinen Segment eines Objekts valarraydefiniert werden.

Syntax

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
}

Hinweise

Die Klasse beschreibt ein Objekt, das einen Verweis auf ein Objekt va der Klasse valarray<Type>zusammen mit einem Objekt gs der Klasse gslicespeichert, das die Abfolge von Elementen beschreibt, die aus dem valarray<Type> Objekt ausgewählt werden sollen.

Sie erstellen ein gslice_array<Type> Objekt nur, indem Sie einen Ausdruck des Formulars va[gs]schreiben. Die Memberfunktionen der Klasse gslice_array verhalten sich dann wie die entsprechenden Funktionssignaturen, für die definiert valarray<Type>ist, außer dass nur die Abfolge der ausgewählten Elemente betroffen ist.

Die Klassenvorlage wird indirekt durch bestimmte valarray Vorgänge erstellt und kann nicht direkt im Programm verwendet werden. Eine interne Hilfsklassenvorlage wird stattdessen vom slice Subscript-Operator verwendet:

gslice_array<Type> valarray<Type>::operator[]( const gslice& ).

Sie erstellen ein gslice_array<Type> Objekt nur, indem Sie einen Ausdruck des Formulars va[gsl]für eine slice gsl von valarray va. Die Memberfunktionen der Klasse gslice_array verhalten sich dann wie die entsprechenden Funktionssignaturen, für die definiert valarray<Type>ist, außer dass nur die Abfolge der ausgewählten Elemente betroffen ist. Die durch die gslice_array Konstruktor gesteuerte Sequenz wird durch die drei Parameter des slice Konstruktors definiert, der Index des ersten Elements im ersten slice, die Anzahl der Elemente in jedem sliceund den Abstand zwischen den Elementen in jedem slice.

Im folgenden Beispiel:

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

Die Indizes müssen für die Prozedur gültig sein, um gültig zu sein.

Beispiel

Ein Beispiel zum gslice::gslice Deklarieren und Verwenden eines slice_array finden Sie im Beispiel.

Anforderungen

Header:<valarray>

Namespace:std

Siehe auch

Threadsicherheit in der C++-Standardbibliothek