Compartir vía


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

Consulte también

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