Classe mask_array
Modello di classe ausiliario interno che supporta oggetti che sono subset di oggetti padre valarray
, specificati con un'espressione booleana, fornendo operazioni tra le matrici di subset.
Osservazioni:
La classe descrive un oggetto che archivia un riferimento a un oggetto va
della classe valarray<Type>
, insieme a un oggetto ba
della classe valarray<bool>
, che descrive la sequenza di elementi da selezionare dall'oggetto valarray<Type>
.
Si costruisce un mask_array<Type>
oggetto solo scrivendo un'espressione del formato va[ba]
. Le funzioni membro della classe mask_array
si comportano quindi come le firme di funzione corrispondenti definite per valarray<Type>
, ad eccezione del fatto che è interessata solo la sequenza di elementi selezionati.
La sequenza è costituita al massimo ba.size
dagli elementi. Un elemento J
è incluso solo se ba[J]
è true
. Nella sequenza sono presenti true
tutti gli elementi presenti in ba
. Se I
è l'indice dell'elemento true più basso in ba
, va[I]
è l'elemento zero nella sequenza selezionata.
Esempio
// 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;
}
Output
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).
Requisiti
Intestazione:<valarray>
Spazio dei nomi: std
Vedi anche
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)