Clase indirect_array

Plantilla de clase auxiliar e interna que admite objetos que son subconjuntos de valarray al proporcionar operaciones entre matrices de subconjuntos definidas con la especificación de un subconjunto de índices de una valarray principal.

Sintaxis

Comentarios

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

Para construir un objeto indirect_array<Type>, se escribe únicamente una expresión de formato va[xa]. Las funciones miembro de la clase indirect_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 está formada por elementos xa.size, donde el elemento I se convierte en el índice xa[I] dentro de va.

Ejemplo:

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

Salida

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

Requisitos

Encabezado:<valarray>

Espacio de nombres:std

Consulte también

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