Condividi tramite


Classe indirect_array

Modello di classe ausiliario interno che supporta oggetti che sono subset di valarray oggetti fornendo operazioni tra matrici subset definite specificando un subset di indici di un elemento padre valarray.

Sintassi

Osservazioni:

La classe descrive un oggetto che archivia un riferimento a un oggetto va della classe valarray<Type>, insieme a un oggetto xa della classe valarray<size_t>, che descrive la sequenza di elementi da selezionare dall'oggetto valarray<Type> .

Si costruisce un indirect_array<Type> oggetto solo scrivendo un'espressione del formato va[xa]. Le funzioni membro della classe indirect_array si comportano quindi come le firme di funzione corrispondenti definite per valarray<Type>, ad eccezione del fatto che è interessata solo la sequenza di elementi selezionati.

La sequenza è costituita da elementi, dove l'elemento I diventa l'indice xa[I] all'interno vadi xa.size .

Esempio:

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

Output

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

Requisiti

Intestazione:<valarray>

Spazio dei nomi: std

Vedi anche

Thread safety nella libreria standard C++