Compartilhar via


gslice::gslice

Uma classe de utilitário a valarray usado para definir fatias multidimensionais de um valarray.

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

Parâmetros

  • _StartIndex
    O índice valarray do primeiro elemento no subconjunto.

  • _LenArray
    Uma matriz que especifica o número de elementos em cada fatia.

  • _IncArray
    Uma matriz que especifica a etapa em cada fatia.

Valor de retorno

O construtor padrão armazena zero para o índice inicial, e vetores de comprimento zero para os vetores de comprimento e de passo. O segundo construtor armazena _StartIndex para o índice inicial, _LenArray para a matriz de comprimento, e _IncArray para a matriz de solução.

Comentários

gslice define um subconjunto de um valarray que consiste em várias fatias de valarray que cada início no mesmo elemento especificado. A capacidade de usar matrizes para definir várias fatias é a única diferença entre gslice e slice::slice. A primeira fatia primeiro tem um elemento a um índice de _StartIndex, um número de elementos especificados pelo primeiro elemento de _LenArray, e um passo determinado pelo primeiro elemento de _IncArray. O conjunto seguinte de intervalos ortogonais tem os primeiros elementos dados pela primeira fatia. O segundo elemento de _LenArray especifica o número de elementos. O passo é determinado pelo segundo elemento de _IncArray. Uma terceira dimensão das fatias levaria os elementos da matriz bidimensional como elementos inicial e continuaria análoga

Exemplo

// 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;
}
  

Requisitos

Cabeçalho: <valarray>

Namespace: std

Consulte também

Referência

Classe gslice