Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Classe
Um modelo de classe auxiliar interna, que dá suporte a objetos de fatia geral fornecendo operações entre matrizes de subconjunto definidas pela fatia geral de uma valarray.
Sintaxe
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
}
Comentários
A classe descreve um objeto que armazena uma referência a um objeto va da classe valarray<Type>, bem como um objeto gs da classe gslice, que descreve a sequência de elementos a serem selecionados do objeto valarray<Type>.
Você constrói um objeto gslice_array<Type> apenas escrevendo uma expressão no formato va[gs]. As funções de membro da classe gslice_array, então, se comportam como as assinaturas de função correspondentes definidas para valarray<Type>, exceto pelo fato de somente a sequência de elementos selecionados ser afetada.
O modelo de classe é criado indiretamente por determinadas operações valarray e não pode ser usado diretamente no programa. Em vez disso, um modelo de classe auxiliar interna é usada pelo operador de subscrito slice:
gslice_array<Type> valarray<Type>::operator[]( const gslice& ).
Você constrói um gslice_array<Type> objeto apenas escrevendo uma expressão da forma va[gsl], para um slice gsl de valarray va. As funções de membro da classe gslice_array, então, se comportam como as assinaturas de função correspondentes definidas para valarray<Type>, exceto pelo fato de somente a sequência de elementos selecionados ser afetada. A sequência controlada pelo gslice_array é definida pelos três parâmetros do construtor slice, o índice do primeiro elemento no primeiro slice, o número de elementos em cada slice e a distância entre os elementos em cada slice.
No exemplo a seguir:
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
Os índices devem ser válidos para que o procedimento seja válido.
Exemplo
Confira a amostra de gslice::gslice para obter um exemplo de como declarar e usar um slice_array.
Requisitos
Cabeçalho:<valarray>
Namespace: std