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 Hilfsklasse, die valarray verwendet wird, um eindimensionale Teilmengen eines übergeordneten Elements valarrayzu definieren. Wird eine valarray zweidimensionale Matrix mit allen Elementen in einem Array betrachtet, extrahiert der slice Vektor in einer Dimension aus dem zweidimensionalen Array.
Hinweise
Die Klasse speichert die Parameter, die ein Objekt vom Typ slice_arraycharakterisieren. Die Teilmenge einer valarray Klasse wird indirekt konstruiert, wenn ein Objekt der Klasse slice als Argument für ein Objekt der Klasse valarray<Type>angezeigt wird. Die gespeicherten Werte, die die aus dem übergeordneten Element valarray ausgewählte Teilmenge angeben, umfassen:
Ein Anfangsindex in der
valarray.Eine Gesamtlänge oder Anzahl von Elementen in der
slice.Ein Stride oder Abstand zwischen den Indizes von Elementen in der
valarray.
Wenn der durch eine slice Konstante definierte Satz die Teilmenge einer Konstante valarrayist, ist dies slice ein neues valarray. Wenn der von a slice definierte Satz die Teilmenge eines nichtconstanten valarrayist, weist die slice Referenzsemantik auf das Original valarrayauf. Der Auswertungsmechanismus für nicht zusammenhängende valarray Objekte spart Zeit und Arbeitsspeicher.
Vorgänge für valarray Objekte werden nur garantiert, wenn die durch die slice Objekte definierten Quell- und Zieluntersätze eindeutig sind und alle Indizes gültig sind.
Konstruktoren
| Konstruktor | Beschreibung |
|---|---|
slice |
Definiert eine Teilmenge eines Elements valarray , das aus einer Auflistung von Elementen besteht, die einen gleichen Abstand voneinander aufweisen und mit einem angegebenen Element beginnen. |
Memberfunktionen
| Memberfunktion | Beschreibung |
|---|---|
size |
Sucht die Anzahl der Elemente in einem von einem slice valarray. |
start |
Sucht den Anfangsindex eines slice einer .valarray |
stride |
Sucht den Abstand zwischen Elementen in einem von einem slice valarray. |
Anforderungen
Header:<valarray>
Namespace:std
slice::size
Sucht die Anzahl der Elemente in einem von einem slice valarray.
size_t size() const;
Rückgabewert
Die Anzahl der Elemente in einem slice von einem valarray.
Beispiel
// slice_size.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t sizeVA, sizeVAR;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i += 1 )
va [ i ] = i+1;
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
sizeVA = va.size ( );
cout << "The size of the valarray is: "
<< sizeVA << "." << endl << endl;
slice vaSlice ( 3 , 6 , 3 );
vaResult = va [ vaSlice ];
cout << "The slice of valarray va is vaResult = "
<< "va[slice( 3, 6, 3)] =\n ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
sizeVAR = vaSlice.size ( );
cout << "The size of slice vaSlice is: "
<< sizeVAR << "." << endl;
}
The operand valarray va is:
( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ).
The size of the valarray is: 20.
The slice of valarray va is vaResult = va[slice( 3, 6, 3)] =
( 4 7 10 13 16 19 ).
The size of slice vaSlice is: 6.
slice::slice
Definiert eine Teilmenge eines Elements valarray , das aus einer Auflistung von Elementen besteht, die einen gleichen Abstand voneinander aufweisen und mit einem angegebenen Element beginnen.
slice();
slice(
size_t _StartIndex,
size_t _Len,
size_t stride);
Parameter
_StartIndex
Der valarray Index des ersten Elements in der Teilmenge.
_Len
Die Anzahl von Elementen in der Teilmenge.
stride
Der Abstand zwischen Elementen in der Teilmenge.
Rückgabewert
Der Standardkonstruktor speichert Nullen für Startindex, Gesamtlänge und Segment. Der zweite Konstruktor speichert _StartIndex für den Startindex, _Len für die Gesamtlänge und stride für das Segment.
Hinweise
Der stride Wert kann negativ sein.
Beispiel
// slice_ctor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i+=1 )
va [ i ] = 2 * (i + 1 );
cout << "The operand valarray va is:\n( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
slice vaSlice ( 1 , 7 , 3 );
vaResult = va [ vaSlice ];
cout << "\nThe slice of valarray va is vaResult:"
<< "\nva[slice( 1, 7, 3)] = ( ";
for ( i = 0 ; i < 7 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
}
The operand valarray va is:
( 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 ).
The slice of valarray va is vaResult:
va[slice( 1, 7, 3)] = ( 4 10 16 22 28 34 40 ).
slice::start
Sucht den Anfangsindex eines slice einer .valarray
size_t start() const;
Rückgabewert
Der Anfangsindex eines slice einer .valarray
Beispiel
// slice_start.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t startVAR;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i += 1 )
va [ i ] = i+1;
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
slice vaSlice ( 3 , 6 , 3 );
vaResult = va [ vaSlice ];
cout << "The slice of valarray va is vaResult = "
<< "va[slice( 3, 6, 3)] =\n ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
startVAR = vaSlice.start ( );
cout << "The start index of slice vaSlice is: "
<< startVAR << "." << endl;
}
The operand valarray va is:
( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ).
The slice of valarray va is vaResult = va[slice( 3, 6, 3)] =
( 4 7 10 13 16 19 ).
The start index of slice vaSlice is: 3.
slice::stride
Sucht den Abstand zwischen Elementen in einem von einem slice valarray.
size_t stride() const;
Rückgabewert
Der Abstand zwischen Elementen in einem von einem slice valarray.
Beispiel
// slice_stride.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t strideVAR;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i += 1 )
va [ i ] = 3 * ( i + 1 );
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
slice vaSlice ( 4 , 5 , 3 );
vaResult = va [ vaSlice ];
cout << "The slice of valarray va is vaResult = "
<< "va[slice( 4, 5, 3)] =\n ( ";
for ( i = 0 ; i < 5 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
strideVAR = vaSlice.stride ( );
cout << "The stride of slice vaSlice is: "
<< strideVAR << "." << endl;
}
The operand valarray va is:
( 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 ).
The slice of valarray va is vaResult = va[slice( 4, 5, 3)] =
( 15 24 33 42 51 ).
The stride of slice vaSlice is: 3.