必須包含標頭檔案
#include #include #include #include #include //ostream_iterator
using namespace std;
int main()
; vectoriv(ia, ia+5);
cout << accumulate(iv.begin(), iv.end(), 0) << endl;
//15, i.e. 0+1+2+3+4+5
cout << accumulate(iv.begin(), iv.end(), 0, minus()) << endl;
//-15 i.e. 0-1-2-3-4-5
cout << inner_product(iv.begin(), iv.end(), iv.begin(), 10) << endl;
//65, i.e. 10+1*1+2*2+3*3+4*4+5*5
cout << inner_product(iv.begin(), iv.end(), iv.begin(), 10,
minus(),plus())partial_sum(iv.begin(), iv.end(), oite);
//1 3 6 10 15(第n個新元素是前n個舊元素的相加總計)
partial_sum(iv.begin(), iv.end(), oite, minus());
//1 -1 -4 -8 -13(第n個新元素是前n個舊元素的運算總計)
adjacent_difference(iv.begin(), iv.end(), oite);
//1 1 1 1 1(#1元素照錄,#n新元素等於#n舊元素-#n-1舊元素)
adjacent_difference(iv.begin(), iv.end(), oite, plus());
//1 3 5 7 9(#1元素照錄,#n新元素等於op(#n舊元素,#n-1舊元素))
//以下函式時sgi專屬
//cout<())<< endl; //30, i.e. 10+10+10
//int n = 3;
//iota(iv.begin(), iv.end(), n); //在指定區間內填入n,n+1,n+2
//for(int i=0, i< iv.size(), ++i)
// cout << iv[i] << ' ' //3 4 5 6 7
return 0;
}
stl 數值演算法
該函式用於累計指定區間的資料,也可以由使用者指定操作,而不一定是加法,其實現如下 對區間 first,last 進行加和操作,init為提供的初始值 template tp accumulate inputiterator first,inputiterator last,tp init binar...
STL常用數值演算法
include include include include include include includeusing namespace std 數值演算法 accumulate 累加或者類乘 partial sum 區域性求和 fill fill n 填充 初始化時使用方便 equal判斷兩區...
STL原始碼剖析之數值演算法
一 accumulate 作用 初始化init,對區間 first,last 的迭代器i執行init i或init binaryop init,i template 版本1,用來計算init和 first,last 區間元素的總和 tp accumulate inputiterator first,...