STL學習筆記(數值演算法)

2022-05-02 22:57:09 字數 2891 閱讀 9841

運用數值演算法之前必須先加入標頭檔案

加工運算後產生結果

1.對序列進行某種運算

taccumulate(inputiterator beg,inputiterator end,

t initvalue)

taccumulate(inputiterator beg,inputiterator end,

t initvalue,binaryfunc op)

1.第一種形式計算initvalue和區間[beg,end)內所有元素的總和。

2.第二種形式計算initvalue和區間[beg,end)內每乙個元素進行op運算的結果。更具體的說,它針對每乙個元素呼叫以下表示式:

initvalue=op(initvalue,elem)

下面這個例子展示如何使用accumulate()得到區間內所有元素的總和和乘積:

1 #include "

algostuff.hpp"2

using

namespace

std;34

intmain()

5

view code

2.計算兩序列的內積

tinner_product(inputiterator beg1,inputiterator end1,

inputiterator beg2,t initvalue)

tinner_product(inputiterator beg1,inputiterator end1,

inputiterator beg2,t initvalue,

binaryfunc op1,binaryfunc op2)

1.第一種形式針對「兩區間內的每一組對應元素」呼叫以下表示式:

initvalue=initvalue+elem1+elem2

2.第二形式則呼叫以下表示式:

initvalue=op1(initvalue,op2(elem1,elem2))

以下程式示範inner_product()的用法

1 #include "

algostuff.hpp"2

using

namespace

std;34

intmain()

5

view code

相對值跟絕對值之間的轉換

1.將相對值轉換成絕對值

outputiterator

partial_sum(inputiterator sourcebeg,

inputiterator sourceend,

outputiterator destbeg)

outputiterator

partial_sum(inputiterator sourcebeg,

inputiterator sourceend,

outputiterator destbeg,binaryfunc op)

1.第一形式計算源區間[sourcebeg,sourceend)中每個元素的部分和,然後將結果寫入以destbeg為起點的目標區間

2.第二形式將源區間[sourcebeg,sourceend)中的每個元素和其先前所有元素進行op運算,並將結果寫入destbeg為起點的目標區間

例如對於以下數值串行:a1 a2 a3 ...

它們分別計算:

a1,a1+a2,a1+a2+a3,..

a1,a1 op a2,a1 op a2 op a2,...

以下程式示範partial_sum()的用法

1 #include 2 #include "

algostuff.hpp"3

using

namespace

std;45

intmain()

6

view code

2.將絕對值轉換成相對值

outputiterator

adjacent_difference(inputiterator sourcebeg,

inputiterator sourceend,

outputiterator destbeg)

outputiterator

adjacent_difference(inputiterator sourcebeg,

inputiterator sourceend,

outputiterator destbeg)

1.第一種形式計算區間[sourcebeg,sourceend)中每乙個元素和其緊鄰前驅元素的差額,並將結果寫入destbeg為起點的目標區間

2.第二種形式針對區間[sourcebeg,sourceend)中每乙個元素和其緊鄰前驅元素呼叫op操作,並將結果寫入destbeg為起點的目標區間

對於以下數值串行:

a1,a2,a3,a4,...

它們分別計算:

a1,a2-a1,a3-a2,a4-a3,...

a1,a2 op a1,a3 op a2,a4 op a3,...

以下程式示範adjacent_difference()的用法

1 #include 2 #include "

algostuff.hpp"3

using

namespace

std;45

intmain()

6

view code

python學習筆記 數值

獲取圓周率不同的精度 import math for precision in range 10 print round math.pi,precision int,round,math.floor的不同之處 import math for n in 2,7,1.2,1.7,2,7,1.2 1.7 ...

js學習筆記(數值型別)

let number new number 88 let number 88 let num1 99 let num2 99.5566 console.log number.isinteger num1 true number.isinteger num2 false 判斷數值是否為整數型 num2...

STL學習筆記 陣列(vector)

2.屬性 3.操作 4.運算子過載 5.兩個演算法 關鍵字 引數列表 變數名 關鍵字 容器名字 類名 引數列表 容器的資料型別 2.容器的資料型別 基本資料型別 eg int char 本質和string一樣 結構體指標 物件 普通類物件 同結構體 其他容器物件 string沒有引數列表 strin...