indirect_array Class
Uma classe interna, auxiliar de modelo que suporta os objetos que são subconjuntos dos valarrays fornecendo operações entre matrizes de subconjunto definiu especificando um subconjunto dos índices de um pai 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
}
Comentários
A classe descreve um objeto que armazena uma referência a um objeto va da classe valarray<Type>, junto com um objeto xa da classe valarray<size_t>, que descreve a seqüência de elementos para selecionar do objeto de valarray<Type> .
Você constrói um objeto de indirect_array<Type> somente gravação de uma expressão de formulário va[xa].As funções de membro da classe indirect_array se comportam como nas assinaturas correspondentes da função definidas para valarray<Type>, exceto que somente a seqüência de elementos selecionados é afetado.
A seqüência consiste nos elementos de xa.tamanho , onde o elemento I se torna o índice xa[]Identro de va.
Exemplo:
// 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;
}
Saída
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
Cabeçalho: <valarray>
namespace: STD