Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine interne, zusätzliche Vorlagenklasse, die Objekte unterstützt, die Teilmengen Wertarrays sind, indem Vorgänge zwischen Teilmengenarrays bereitstellen, definierte, indem eine Teilmenge Indizes eines übergeordneten Wertarrays angegeben hat.
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
}
Hinweise
Die Klasse beschreibt ein Objekt, das einen Verweis auf ein Objekt va der Klasse Array von Werten<Type>, zusammen mit einem Objekt xa der Klasse valarray<size_t> speichert, die die Sequenz von Elementen beschreibt, die dem valarray<Type>-Objekt auszuwählen.
Sie erstellen ein indirect_array<Type>-Objekt, nur mit einem Ausdruck des Formulars va[xa] schreiben.Die Memberfunktionen der Klasse indirect_array verhalten sich dann wie die entsprechenden Funktionssignaturen, die für valarray<Type> definiert werden, dass nur die Sequenz von ausgewählten Elementen wird beeinflusst.
Die Sequenz besteht aus Elementen xa.Größe, in denen Element I der Index xa[I] in 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