您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

STL中的accumulate

accumulate

所在头文件:

用法:accumulate(iterator first, iterator last, value); `

​ 计算容器元素累计综合

​ beg为开始迭代器

​ end为结束迭代器

​ value为起始值

accumulate源码:
//版本1
    template<class InputIterator,class T>
    T accumulate(InputIterator first,InputIterator last, T init)
    {
        for(;first != last;++first)
            init = init + *first;	//将每个元素值累加到初始值init身上
        return init;
    }

//版本2
	template<class InputIterator,class T, class binaryOperation>
    T accumulate(InputIterator first,InputIterator last, T init,binaryOperation binary_op)
    {
        for(;first != last;++first)
            init = binary_op(init,*first);	//对每个元素执行二元操作
        return init;
    }

​ 算法accumulate用来计算init和[first,last)内所有元素的总和.注意,一定要定义一个初始值init,这么做的原因是当[first,last)为空区间时仍能获得一个明确定义的值.如果希望[first,last)中所有元素的总和,应将init设为0.

​ 上面的二元操作符不满足交换律和结合律.


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进