gslice::gslice
用來定義多維切割 valarray 的 valarray 的公用程式類別。
gslice( );
gslice(
size_t _StartIndex,
const valarray<size_t>& _LenArray,
const valarray<size_t>& _IncArray
);
參數
_StartIndex
第一個項目的索引。valarray 子集的。_LenArray
指定項目數目陣列中每個切割。_IncArray
指定步距的陣列在每個切割。
傳回值
預設建構函式存放零起始索引和長度為零的向量的長度和分散的向量。 第二個建構函式將起始索引的長度陣列中的 _StartIndex ),陣列的 _LenArray 和 _IncArray 。
備註
gslice 定義包含多個切割 valarray 在同一個指定項目的每個啟動子集的 valarray。 可以使用陣列定義多個切割是 gslice 和 slice::slice之間的唯一差異。 第一個切割會與 _StartIndex的索引, _LenArray之第一個項目指定的項目與 _IncArray的第一個項目給的步距的第一個項目。 下一組正交切割有第一個切割給的第一個項目。 _LenArray 的第二個項目來指定項目數目。 分散由 _IncArray的第二個項目測量。 第三個維度切割會採用這個二維陣列的元素做為開始項目並近似本機執行
範例
// 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