累加求和
int sum = accumulate(vec.begin() , vec.end() , 0);
前两个形参表示累加的范围,最后一个形参表示累加的初值。
累乘求积
int sum = accumulate(vec.begin ( ) ,vec.end ( ) ,1 ,multiplies<int>( ));
前两个形参表示累加的范围,第3个参数表示累乘的初值,第4个参数表示累乘。
应用举例
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int> vec(10, 2);//2 2 2 2 2 2 2 2 2 2,10个2
int sum = accumulate(vec.begin(), vec.end(), 0); //10
int sum2 = accumulate(vec.begin(), vec.end(), 1, multiplies<int>()); //1024
cout<<sum<<" "<<sum2<<endl;
return 0;
}