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