Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Classe
Classe utilitaire utilisée valarray pour définir des sous-ensembles unidimensionnels d’un parent valarray. Si une valarray matrice à deux dimensions est considérée comme une matrice à deux dimensions avec tous les éléments d’un tableau, elle slice extrait un vecteur dans une dimension hors du tableau à deux dimensions.
Notes
La classe stocke les paramètres qui caractérisent un objet de type slice_array. Le sous-ensemble d’un valarray objet est indirectement construit lorsqu’un objet de classe slice apparaît comme un argument pour un objet de classe valarray<Type>. Les valeurs stockées qui spécifient le sous-ensemble sélectionné à partir du parent valarray sont les suivantes :
Index de départ dans le
valarray.Longueur totale ou nombre d’éléments dans le
slice.Une progression, ou une distance entre les indices des éléments dans le
valarray.
Si l’ensemble défini par un slice est le sous-ensemble d’une constante valarray, il slice s’agit d’un nouveau valarray. Si l’ensemble défini par un slice est le sous-ensemble d’un élément nonconstant valarray, la slice sémantique de référence est définie sur l’original valarray. Le mécanisme d’évaluation des objets nonconstants valarray permet de gagner du temps et de la mémoire.
Les opérations sur valarray les objets sont garanties uniquement si les sous-ensembles source et de destination définis par les slice objets sont distincts et que tous les index sont valides.
Constructeurs
| Constructeur | Description |
|---|---|
slice |
Définit un sous-ensemble d’un valarray élément constitué d’une collection d’éléments qui sont à distance égale et qui commencent à un élément spécifié. |
Fonctions Membre
| Fonction membre | Description |
|---|---|
size |
Recherche le nombre d’éléments d’un slice valarray. |
start |
Recherche l’index de départ d’un slice valarrayobjet . |
stride |
Recherche la distance entre les éléments d’un slice valarray. |
Spécifications
Header :<valarray>
Espace de noms : std
slice::size
Recherche le nombre d’éléments d’un slice valarray.
size_t size() const;
Valeur retournée
Nombre d’éléments d’un slice valarray.
Exemple
// 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
Définit un sous-ensemble d’un valarray élément constitué d’une collection d’éléments qui sont à distance égale et qui commencent à un élément spécifié.
slice();
slice(
size_t _StartIndex,
size_t _Len,
size_t stride);
Paramètres
_StartIndex
Index valarray du premier élément du sous-ensemble.
_Len
Nombre d’éléments dans le sous-ensemble.
stride
Distance entre les éléments dans le sous-ensemble.
Valeur retournée
Le constructeur par défaut stocke des zéros pour l’index de départ, la longueur totale et le stride. Le deuxième constructeur stocke _StartIndex pour l’index de départ, _Len pour la longueur totale et stride pour le stride.
Notes
La stride valeur peut être négative.
Exemple
// 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
Recherche l’index de départ d’un slice valarrayobjet .
size_t start() const;
Valeur retournée
Index de départ d’un slice valarray.
Exemple
// 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
Recherche la distance entre les éléments d’un slice valarray.
size_t stride() const;
Valeur retournée
Distance entre les éléments d’un slice valarray.
Exemple
// 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.