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 va
di 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