gslice_array-Klasse
Eine interne, zusätzliche Vorlagenklasse, die allgemeine Segment unterstützt, - Objekt, indem diese Vorgänge zwischen den Teilmengenarrays bereitstellt, die von den allgemeinen Segment eines Wertarrays definiert werden.
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 Array von Werten<Typ> speichert, zusammen mit einem Objekt gs der gslice, die die Sequenz der Elemente beschrieben, die dem valarray <Type>-Objekt auszuwählen.
Sie erstellen ein gslice_array <Type>-Objekt, indem Sie nur einen Ausdruck des Formulars VA [gs] schreiben. Die Memberfunktionen der Klasse gslice_array dann verhalten sich wie die entsprechenden Funktionssignaturen, für die valarray <Type> definiert werden, dass nur die Reihenfolge der ausgewählten Elemente wird beeinflusst.
Die Vorlagenklasse wird indirekt durch bestimmte Wertarrayvorgänge erstellt und kann nicht direkt im Programm verwendet werden. Eine interne zusätzliche Vorlagenklasse stattdessen wird vom tiefgestellten Operator des Slices verwendet:
::operator[] (const)gslice &gslice_array<Typ>valarray<Typ>.
Sie erstellen ein gslice_array <Type>-Objekt, indem Sie nur einen Ausdruck des Formulars va[gsl], gsl für ein Segment des Wertarrays va schreiben. Die Memberfunktionen der Klasse gslice_array dann verhalten sich wie die entsprechenden Funktionssignaturen, für die valarray <Type> definiert werden, dass nur die Reihenfolge der ausgewählten Elemente wird beeinflusst. Die Sequenz, die vom gslice_array gesteuert wird, wird durch die drei Parameter des Slicekonstruktors, Index des ersten Elements im Anschnitt, der Anzahl der Elemente in jedem Segment und des Abstands zwischen Elementen in einem Segment definiert.
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 gültig werden, dass die Prozedur gültig ist.
Beispiel
Im Beispiel für gslice::gslice als Beispiel, wie ein slice_array deklariert und verwendet.
Anforderungen
Header: <valarray>
Namespace: std