Clase gslice_array
Plantilla de clase auxiliar e interna que admite objetos de segmentos generales proporcionando operaciones entre matrices de subconjuntos definidas por el segmento general de una valarray
.
Sintaxis
template <class Type>
class gslice_array : public gsplice {
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<Type>
, junto con un objeto gs
de la clase gslice
, que describe la secuencia de elementos que se pueden seleccionar desde el objeto valarray<Type>
.
Para construir un objeto gslice_array<Type>
, se escribe únicamente una expresión de formato va[gs]
. Las funciones miembro de la clase gslice_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 plantilla de la clase se crea indirectamente por determinadas operaciones valarray
y no se puede usar directamente en el programa. En su lugar, el operador de subíndice slice
usa una plantilla de la clase auxiliar interna:
gslice_array<Type> valarray<Type>::operator[]( const gslice& )
.
Solo se crea un gslice_array<Type>
objeto escribiendo una expresión del formulario va[gsl]
para un slice
gsl
de valarray
va
. Las funciones miembro de la clase gslice_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 controlada por gslice_array
se define mediante los tres parámetros del constructor slice
, el índice del primer elemento en el primer slice
, el número de elementos de cada slice
y la distancia entre los elementos de cada slice
.
En el ejemplo siguiente:
const size_t lv[] = {2, 3};
const size_t dv[] = {7, 2};
const valarray<size_t> len(lv, 2), str(dv, 2);
// va[gslice(3, len, str)] selects elements with
// indices 3, 5, 7, 10, 12, 14
Los índices deben ser válidos para que el procedimiento sea válido.
Ejemplo
Vea el ejemplo de gslice::gslice
para ver cómo se declara y usa una slice_array.
Requisitos
Encabezado:<valarray>
Espacio de nombres: std