關鍵字valarray小結

valarray類似vector,也是一個模板類,其主要被用來對一系列元素進行高速的數字計算,其與vector的主要區別在於以下兩點
1、 valarray定義了一組在兩個相同長度和相同類型的valarray類對象之間的數字計算,例如xarr = cos(yarr) + sin(zarr);
2、通過重載operater[],可以返回valarray的相關信息(valarray其中某個元素的引用、特定下標的值或者其某個子集)。

 

valarray類用法

1.       apply       valarray數組的每一個值都用apply所接受到的函數進行計算

2.       cshift      valarray數組的數據進行循環移動,參數爲正者左移爲負就右移

3.       max         返回valarray數組的最大值

4.       min          返回valarray數組的最小值

5.       resize       重新設置valarray數組大小,並對其進行初始化

6.       shift         valarray數組移動,參數爲正者左移,爲負者右移,移動後由0填充剩餘位

7.       size          得到數組的大小

8.       sum         數組求和

構造函數

valarray( );

explicit valarray(size_t _Count);

valarray(   const Type& _Val,    size_t _Count);

valarray(   const Type* _Ptr,    size_t _Count);

valarray(   const slice_array<Type>& _SliceArray);

valarray(   const gslice_array<Type>& _GsliceArray);

valarray(   const mask_array<Type>& _MaskArray);

valarray(   const indirect_array<Type>& _IndArray);

 

 

 

slice類用法

該類主要配合valarray類使用,可以從valarray中提取子數組

slice( ); 

slice(   size_t _StartIndex,//截取數組的開始位置

   const valarray<size_t> _Len, //子數組的最大長度

   const valarray<size_t> _Stride//相隔多少個元素選中一個

);

用法:

int main( )

{

   using namespace std;

   int i;

 

   valarray<int> va ( 20 ), vaResult;

   for ( i = 0 ; i < 20 ; i+=1 )

      va [ i ] = 2 * (i + 1 );

 

   cout << "The operand valarray va is:/n( ";

      for ( i = 0 ; i < 20 ; i++ )

         cout << va [ i ] << " ";

   cout << ")." << endl;

 

   slice vaSlice ( 1 , 7 , 3 );

   vaResult = va [ vaSlice ];

 

   cout << "/nThe slice of valarray va is vaResult:"

        << "/nva[slice( 1, 7, 3)] = ( ";

      for ( i = 0 ; i < 7 ; i++ )

         cout << vaResult [ i ] << " ";

   cout << ")." << endl;

}

輸出結果:

The operand valarray va is:

( 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 ).

 

The slice of valarray va is vaResult:

va[slice( 1, 7, 3)] = ( 4 10 16 22 28 34 40 ).

 

 

 

Gslice類用法

Gslice類的用法和slice基本相同,只是它截取的是循環子串,當母串進行一次提取後的字串元素數目達不到要求時,gslice會將提取後的母串繼續組合進行提取直到滿足要求或者母串被提取完了

 

 

公共函數(對數組的操作)

1.abs   對數組的每一個元素取絕對值

2.acos   返回每個元素的反餘弦值

3.asin 返回每個元素的反正弦值

4.atan 返回每個元素的正切值

5.atan2 笛卡爾正切值

6.cos   餘弦值

7.cosh 雙曲線餘弦值

8.exp   返回自然指數E^x

9.log   返回自然對數

10.log10    返回以10爲底的返回自然對數

11.exp      返回x^y

12.sin      正弦值

13.sinh     雙曲線正弦值

14.sqrt     開方

15.tan      正切值

16.tanh     反正切值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章