gslice_array
-Klasse
Eine interne Hilfsklassenvorlage, die allgemeine Segmentobjekte unterstützt, indem Vorgänge zwischen Teilmengearrays bereitgestellt werden, die vom allgemeinen Segment eines Objekts valarray
definiert 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 gslice
speichert, 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 slice
und 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