1. 程式人生 > 其它 >C++提高程式設計 5 STL -常用演算法(算術生成演算法)

C++提高程式設計 5 STL -常用演算法(算術生成演算法)

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;
}