indirect_array
-Klasse
Eine interne Hilfsklassenvorlage, die Objekte unterstützt, die Teilmengen von valarray
Objekten sind, indem Vorgänge zwischen Teilmengearrays bereitgestellt werden, die durch Angeben einer Teilmenge von Indizes eines übergeordneten Elements valarray
definiert werden.
Syntax
Hinweise
Die Klasse beschreibt ein Objekt, das einen Verweis auf ein Objekt va
der Klasse valarray<Type>
zusammen mit einem Objekt xa
der Klasse valarray<size_t>
speichert, das die Abfolge von Elementen beschreibt, die aus dem valarray<Type>
Objekt ausgewählt werden sollen.
Sie erstellen ein indirect_array<Type>
Objekt nur, indem Sie einen Ausdruck des Formulars va[xa]
schreiben. Die Memberfunktionen der Klasse indirect_array
verhalten sich dann wie die entsprechenden Funktionssignaturen, für die definiert valarray<Type>
ist, außer dass nur die Abfolge der ausgewählten Elemente betroffen ist.
Die Sequenz besteht aus xa.size
Elementen, wobei das Element I
zum Index xa[I]
innerhalb va
wird.
Beispiel:
// 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).
Anforderungen
Header:<valarray>
Namespace:std