C++提高程式設計 5 STL -常用演算法(算術生成演算法)
阿新 • • 發佈:2022-03-04
5.5常用算術生成演算法
注意:算術生成演算法屬於小型演算法,使用時包含標頭檔案為 #include<numeric>;
accumulate //計算容器元素累計總和
fill //向容器中新增元素
5.5.1accumulate //計算容器元素累計總和
函式原型:accumulate(iteratorbeg, iterator end, value); //value起始值
//注意標頭檔案是#include<numeric>
#include<iostream> using namespace std; #include<vector> #include<numeric> //常用算術生成演算法 accumulate void test1() { vector<int>v; for (int i = 0; i <= 100; i++) { v.push_back(i); } //引數3 起始累加值 int total = accumulate(v.begin(), v.end(), 0); cout << "total = " << total << endl; //total = 5050// int total = accumulate(v.begin(), v.end(), 1000); // cout << "total = " << total << endl; //total = 6050 } int main() { test1(); system("pause"); return 0; }
5.5.2 fill //向容器中新增元素(replace)
函式原型:fill(iteratorbeg, iterator end, value); //value填充的值
//有元素的情況下,所有資料都被修改
#include<iostream> using namespace std; #include<vector> #include<numeric> #include<algorithm> //常用算術生成演算法 fill //向容器中新增元素 void print1(int val) { cout << val << " "; } void test1() { vector<int>v; v.resize(10); //指定大小後,預設填充0為初始值 //後期重新填充 fill(v.begin(), v.end(), 100); for_each(v.begin(), v.end(), print1); //100 100 100 100 100 100 100 100 100 100 cout << endl; } int main() { test1(); system("pause"); return 0; }