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