indirect_array (Clase)indirect_array Class

Una plantilla de clase auxiliar interna que admite objetos que son subconjuntos de valarrays proporcionando operaciones entre matrices de subconjuntos definidas especificando un subconjunto de índices de una valarray primaria.An internal, auxiliary class template that supports objects that are subsets of valarrays by providing operations between subset arrays defined by specifying a subset of indices of a parent valarray.

SintaxisSyntax

ComentariosRemarks

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 va a seleccionar en el objeto valarray<Type>.The class describes an object that stores a reference to an object va of class valarray<Type>, along with an object xa of class valarray<size_t>, which describes the sequence of elements to select from the valarray<Type> object.

Solo se construye un objeto indirect_array<Type> escribiendo una expresión con el formato va[xa].You construct an indirect_array<Type> object only by writing an expression of the form va[xa]. Las funciones miembro de la clase indirect_array se comportarán como las signaturas de función correspondientes definidas para valarray<Type>, excepto en que solo la secuencia de elementos seleccionados se ve afectada.The member functions of class indirect_array then behave like the corresponding function signatures defined for valarray<Type>, except that only the sequence of selected elements is affected.

La secuencia consta de XA. elementos de tamaño , donde el elemento I se convierte en el índice XA[I] dentro de va.The sequence consists of xa.size elements, where element I becomes the index xa[ I] within va.

Ejemplo:Example:

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

ResultadosOutput

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

RequisitosRequirements

Encabezado: <valarray>Header: <valarray>

Espacio de nombres: stdNamespace: std

Vea tambiénSee also

Seguridad para subprocesos en la biblioteca estándar de C++Thread Safety in the C++ Standard Library