Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una clase de plantilla interna, auxiliar que admite los objetos que son subconjuntos de valarrays proporcionando operaciones entre matrices de subconjunto define especificando un subconjunto de índices de un elemento primario valarray.
template<class Type>
class indirect_array {
public:
typedef Type value_type;
void operator=(
const valarray<Type>& x
) const;
void operator=(
const Type& x
) const;
void operator*=(
const valarray<Type>& x
) const;
void operator/=(
const valarray<Type>& x
) const;
void operator%=(
const valarray<Type>& x
) const;
void operator+=(
const valarray<Type>& x
) const;
void operator-=(
const valarray<Type>& x
) const;
void operator^=(
const valarray<Type>& x
) const;
void operator&=(
const valarray<Type>& x
) const;
void operator|=(
const valarray<Type>& x
) const;
void operator<<=(
const valarray<Type>& x
) const;
void operator>>=(
const valarray<Type>& x
) const;
// The rest is private or implementation defined
}
Comentarios
La clase describe un objeto que almacena una referencia a un objeto va de la clase valarray <tipo> , junto con un objeto XA de la clase <size_t> valarray, que describe la secuencia de elementos para seleccionar del objeto de <tipo> valarray .
Se crea un objeto de <tipo> indirect_array sólo escribiendo una expresión de formulario va [XA].Las funciones miembro de clases indirect_array se comportan como las firmas correspondientes de la función definido para <tipo> valarray, excepto que sólo la secuencia de elementos seleccionados se verá afectada.
La secuencia se compone de elementos de XA.tamaño , 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