【C++學習】valarray函數庫

來源:互聯網
上載者:User

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

做畢設時碰到了最小二乘法的直線擬合問題,發覺C++裡有以下這麼幾個類在做這件事情、以及後續處理時挺不錯的,其實用OpenCV的資料結構和方法也可以進行,稍後研究一下。

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 反正切值

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.