Compartilhar via


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;
}

c2sh653a.collapse_all(pt-br,VS.110).gifSaí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

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão