Partilhar via


indirect_array classe

Um modelo de classe auxiliar interno que suporta objetos que são subconjuntos de objetos fornecendo operações entre matrizes de valarray subconjuntos definidas especificando um subconjunto de índices de um pai valarray.

Sintaxe

Observações

A classe descreve um objeto que armazena uma referência a um objeto va de classe valarray<Type>, juntamente com um objeto xa de classe valarray<size_t>, que descreve a sequência de elementos a serem selecionados a valarray<Type> partir do objeto.

Você constrói um indirect_array<Type> objeto somente escrevendo uma expressão do formulário va[xa]. As funções de membro da classe indirect_array então se comportam como as assinaturas de função correspondentes definidas para valarray<Type>, exceto que apenas a sequência de elementos selecionados é afetada.

A sequência consiste em elementos, onde o elemento I se torna o índice xa[I] dentro vade xa.size .

Example

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

Resultado

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).

Requerimentos

Cabeçalho:<Valarray>

Espaço de nomes:std

Consulte também

Segurança de threads na biblioteca padrão C++