gslice::gslice
多次元 valarray のスライスを定義するために使用される valarray へのユーティリティ クラス。
gslice( );
gslice(
size_t _StartIndex,
const valarray<size_t>& _LenArray,
const valarray<size_t>& _IncArray
);
パラメーター
_StartIndex
サブセットの最初の要素のインデックス valarray。_LenArray
各スライスの要素の数を指定する配列。_IncArray
各スライスのストライドを指定する配列。
戻り値
既定のコンストラクターは、長さ、およびストライドのベクターの開始インデックスと長さがゼロのベクターのゼロを格納します。2 つ目のコンストラクターは、開始インデックスの _StartIndex、長さの配列の _LenArray、およびストライドの配列の _IncArray を格納します。
解説
gslice は、指定した要素の各開始 valarray の複数のスライスで構成される valarray のサブセットを定義します。複数のスライスを定義するために配列を使用すると、gslice と slice::sliceの唯一の違いがあります。最初のスライスに _StartIndexのインデックス、_LenArrayの最初の要素で指定されている一連の要素と _IncArrayの最初の要素で指定されたストライドの最初の要素があります。直角スライスのセットに最初のスライスで指定された最初の要素があります。_LenArray の 2 番目の要素は要素の数を指定します。ストライドは _IncArrayの 2 番目の要素によって渡されます。スライスの 3 番目の次元の開始の要素として次元配列の要素を受け取り、関数的に移動します
使用例
// 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;
}
必要条件
ヘッダー: <valarray>
名前空間: std