Freigeben über


mask_array-Klasse

Eine interne Hilfsklassenvorlage, die Objekte unterstützt, die Teilmengen von übergeordneten valarray Objekten sind, die mit einem booleschen Ausdruck angegeben werden, indem Vorgänge zwischen den Untermengenarrays bereitgestellt werden.

Hinweise

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

Sie erstellen ein mask_array<Type> Objekt nur, indem Sie einen Ausdruck des Formulars va[ba]schreiben. Die Memberfunktionen der Klasse mask_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 den meisten ba.size Elementen. Ein Element J ist nur enthalten, wenn ba[J] es sich um true. Es gibt so viele Elemente in der Sequenz wie Elemente true in ba. Wenn I es sich um den Index des niedrigsten true-Elements handelt ba, ist das va[I] Element Null in der ausgewählten Sequenz.

Beispiel

// mask_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;

   // Use masked subsets to assign a value of 10
   // to all elements grrater than 3 in value
   va [va > 3 ] = 10;
   cout << "The modified operand valarray is:  ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;
}

Ausgabe

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

Anforderungen

Header:<valarray>

Namespace:std

Siehe auch

Threadsicherheit in der C++-Standardbibliothek