Condividi tramite


gslice::gslice

Una classe di utilità a valarray utilizzato per definire le sezioni multidimensionali di un valarray.

gslice( );
gslice(
   size_t _StartIndex,
   const valarray<size_t>& _LenArray,
   const valarray<size_t>& _IncArray
);

Parametri

  • _StartIndex
    L'indice valarray del primo elemento del sottoinsieme.

  • _LenArray
    Una matrice che specifica il numero di elementi in ogni sezione.

  • _IncArray
    Una matrice che specifica il andatura in ogni sezione.

Valore restituito

Il costruttore predefinito contiene zero per l'indice iniziale e i vettori di lunghezza zero per i vettori di andatura e di lunghezza. Il secondo costruttore archivia _StartIndex per l'indice iniziale, _LenArray per la matrice di lunghezza e _IncArray per la matrice di andatura.

Note

gslice definisce un sottoinsieme di un valarray costituito dalle sezioni precedenti di valarray che ogni inizio allo stesso elemento specificato. La possibilità di utilizzare le matrici per definire le sezioni precedenti è l'unica differenza tra gslice e slice::slice. La prima sezione contiene un primo elemento con un indice di _StartIndex, una serie di elementi specificati dal primo elemento di _LenArray e di andatura fornita dal primo elemento di _IncArray. Il set delle sezioni ortogonali ha primi elementi forniti dalla prima sezione. Il secondo elemento di _LenArray specifica il numero di elementi. Il andatura viene fornita dal secondo elemento di _IncArray. Una terza dimensione delle sezioni prenderebbe gli elementi della matrice bidimensionale come elementi iniziale e continuerebbe analogamente

Esempio

// gslice_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 ] =  i;

   cout << "The operand valarray va is:" << endl << "(";
   for ( i = 0 ; i < 20 ; i++ )
      cout << " " << va [ i ];
   cout << " )" << endl;

   valarray<size_t> Len ( 2 ), Stride ( 2 );
   Len [0] = 4;
   Len [1] = 4;
   Stride [0] = 7;
   Stride [1] = 4;

   gslice vaGSlice ( 0, Len, Stride );
   vaResult = va [ vaGSlice ];

   cout << "The valarray for vaGSlice is vaResult:" << endl
        << "va[vaGSlice] = (";
   
   for ( i = 0 ; i < 8 ; i++ )
      cout << " " << vaResult [ i ];
   cout << ")" << endl;
}
  

Requisiti

Header: <valarray>

Spazio dei nomi: std

Vedere anche

Riferimenti

Classe gslice