Freigeben über


indirect_array-Klasse

Eine interne Hilfsklassenvorlage, die Objekte unterstützt, die Teilmengen von valarray Objekten sind, indem Vorgänge zwischen Teilmengearrays bereitgestellt werden, die durch Angeben einer Teilmenge von Indizes eines übergeordneten Elements valarraydefiniert werden.

Syntax

Hinweise

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

Sie erstellen ein indirect_array<Type> Objekt nur, indem Sie einen Ausdruck des Formulars va[xa]schreiben. Die Memberfunktionen der Klasse indirect_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 Sequenz besteht aus xa.size Elementen, wobei das Element I zum Index xa[I] innerhalb vawird.

Beispiel:

// indirect_array.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   valarray<int> va ( 10 );
   for ( i = 0 ; i < 10 ; i += 2 )
      va [ i ] =  i;
   for ( i = 1 ; i < 10 ; i += 2 )
      va [ i ] =  -1;

   cout << "The initial operand valarray is:  ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;

   // Select 2nd, 4th & 6th elements
   // and assign a value of 10 to them
   valarray<size_t> indx ( 3 );
   indx [0] = 2;
   indx [1] = 4;
   indx [2] = 6;
   va[indx] = 10;

   cout << "The modified operand valarray is:  ( ";
      for (i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;
}

Output

The initial operand valarray is:  (0 -1 2 -1 4 -1 6 -1 8 -1).
The modified operand valarray is:  (0 -1 10 -1 10 -1 10 -1 8 -1).

Anforderungen

Header:<valarray>

Namespace:std

Siehe auch

Threadsicherheit in der C++-Standardbibliothek