Compartir vía


Clase mask_array

Clase de plantilla auxiliar e interna que admite objetos que son subconjuntos de objetos valarray principales, especificados con una expresión booleana, proporcionando operaciones entre matrices de subconjuntos.

Comentarios

La clase describe un objeto que almacena una referencia a un objeto va de la clase valarray<Type>, junto con un objeto ba de la clase valarray<bool>, que describe la secuencia de elementos que se pueden seleccionar desde el objeto valarray<Type>.

Para construir un objeto mask_array<Type>, se escribe únicamente una expresión de formato va[ba]. Las funciones miembro de la clase mask_array se comportarán como las firmas de función correspondientes definidas para valarray<Type>, excepto en que solo la secuencia de elementos seleccionados se ve afectada.

La secuencia consta como máximo de elementos ba.size. Un elemento J solo se incluye si ba[J] es true. Hay tantos elementos en la secuencia como elementos true en ba. Si I es el índice del elemento true más bajo en ba, va[I] es el elemento cero de la secuencia seleccionada.

Ejemplo

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

Salida

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).

Requisitos

Encabezado:<valarray>

Espacio de nombres:std

Consulte también

Seguridad para subprocesos en la biblioteca estándar de C++