1. 程式人生 > >C++ STL 函式partial_sum的正確使用方法

C++ STL 函式partial_sum的正確使用方法

partial_sum 對於序列 a,b,c,d 產生序列 a,a+b,a+b+c,a+b+c+d。

//本程式例項演示partial_sum函式的正確使用方式
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;

void print(int ele){
    cout<<ele<<",";
}

//模擬預設partial_sum謂詞函式的功能
int op(int pre_ele,int ele){
    return pre_ele+ele;
}

int main()
{
    vector<int> v1,v2,v3;
    int dim[]={1,2,3};
    v1.assign(dim,dim+3);  //初始化v1
    cout<<"v1:"<<endl;
    for_each(v1.begin(),v1.end(),print);  //顯示v1
    cout<<endl;
    partial_sum(v1.begin(),v1.end(),back_inserter(v2));  //初始化v2
    cout<<"partial_sum處理v1: "<<endl;
    for_each(v2.begin(),v2.end(),print);  //顯示v2
    cout<<endl;
    partial_sum(v1.begin(),v1.end(),back_inserter(v3),op); //自定義謂詞函式模擬預設功能
    cout<<"自定義謂詞函式模擬partial_sum處理v1:"<<endl;
    for_each(v3.begin(),v3.end(),print);
    cout<<endl;
    return 0;
}