gslice_array Class

Eine interne, zusätzliche Vorlagenklasse, die allgemeinen Slices unterstützt, Objekte, indem sie Vorgänge zwischen den Teilmengenarrays bereitstellt, die von den allgemeinen Slices 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<Type> speichert, zusammen mit einem Objekt gs der Klasse gslice, die die Sequenz von Elementen beschreibt, die dem valarray<Type>-Objekt auszuwählen.

Sie erstellen ein gslice_array<Type>-Objekt, nur mit einem Ausdruck des Formulars VA [gs] schreiben.Die Memberfunktionen der Klasse gslice_array verhalten sich dann wie die entsprechenden Funktionssignaturen, die für valarray<Type> definiert werden, dass nur die Sequenz von ausgewählten Elementen wird beeinflusst.

Die Vorlagenklasse wird indirekt über 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:

gslice_array<Typ> valarray<Typ>::operator[] (constgslice&).

Sie erstellen ein gslice_array<Type>-Objekt, nur mit einem Ausdruck des Formulars va[gsl], für ein Segment gsl des Wertarrays va schreiben.Die Memberfunktionen der Klasse gslice_array verhalten sich dann wie die entsprechenden Funktionssignaturen, die für valarray<Type> definiert werden, dass nur die Sequenz von ausgewählten Elementen wird beeinflusst.Die Sequenz, die durch das gslice_array gesteuert wird, wird durch die drei Parameter des Slicekonstruktors, Index des ersten Elements im Anschnitt, der Anzahl der Elemente in jedem Slice und den Abstand zwischen den Elementen in jedem Slice 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 sein, damit die Prozedur gültig ist.

Beispiel

Im Beispiel für gslice::gslice als ein Beispiel, wie ein slice_array deklariert und verwendet.

Anforderungen

Header: <valarray>

Namespace: std

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek