stl演算法之accumulate

2021-10-19 21:15:06 字數 1226 閱讀 8083

首先包含#include

然後看看**:

void

main()

clock_t t4 =

clock()

; cout <<

"nsum3:"

<< nsum3 <<

" time:"

<< t4 - t3 << endl;

system

("pause");

}

結果:

從結果可以看出使用accumulate的演算法比傳統迴圈累加需要的時間少。所以推介使用但僅是容器的情況下快,我在測試普通陣列的時候,反而迴圈更快。

int nsum4 =

accumulate

(begin

(a),

end(a),0

,minus<

int>()

);//0-1-1-1-1-1-...

cout <<

"num4:"

<

int nsum5 =

accumulate

(begin

(a),

end(a),5

, minus<

int>()

);//5-1-1-1-1-1-...

cout <<

"num5:"

<< nsum5 << endl;

int nsum6 =

accumulate

(begin

(a),

end(a),0

,(int x,

int y));

//0-1-1-1-1-1-...

cout <<

"num6:"

<< nsum6 << endl;

int nsum7 =

accumulate

(begin

(a),

end(a),2

,(int x,

int y));

//0-1-1-1-1-1-...

cout <<

"num7:"

<< nsum7 << endl;

STL之演算法

演算法是指解決問題的方 而完整的描述,對於規範的輸入,在有限時間內要獲得所需要的輸出。不同的演算法可能使用不同的時間 空間或效率完成同樣的任務。想要評估乙個演算法的好壞,目前可以通過時間複雜度和空間複雜度來進行衡量。時間複雜度,是指演算法執行指令所需的計算量。演算法的執行時間和其所要處理的資料之間存...

STL演算法之for each

轉接自stl演算法 for each 對區間裡每個元素執行相應操作 注 for each 接受乙個操作,操作可改動所接受實參 所以該實參必須以by reference方式傳遞 include include include using namespace std for each 對區間裡每個元素執...

STL之排序演算法

1.merge 以下是排序和通用演算法 提供元素排序策略 merge 合併兩個有序序列,存放到另乙個序列。例如 vecinta,vecintb,vecintc是用vector宣告的容器,vecinta已包含1,3,5,7,9元素,vecintb已包含2,4,6,8元素 vecintc.resize ...