永发信息网

C++:accumulate(list1.begin(), list1.end(),0);这里的第三个参数是什么呢?

答案:3  悬赏:50  手机版
解决时间 2021-11-27 20:31
  • 提问者网友:谁的错
  • 2021-11-27 02:25
C++:accumulate(list1.begin(), list1.end(),0);这里的第三个参数是什么呢?
最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-11-27 03:00
首先,accumulate是用于累计计算的函数,默认情况下是求和。而其中第三个参数便是和的初始值。如果数据为a0, ..., an,则accumulate返回a0 + ... + an + 初始值。
事实上,accumulate有两个版本:
template< class InputIt, class T >T accumulate( InputIt first, InputIt last, T init );
template< class InputIt, class T, class BinaryOperation >T accumulate( InputIt first, InputIt last, T init, BinaryOperation op )第一个版本(即你使用的版本),相当于用加法操作调用第二个版本,即:op(op(...op(a0, a1), ...an), 初始值)。因而,也可以通过如下方式做累乘(假设数据类型为int):
std::accumulate(list1.begin(), list1.end(), 1, std::multiplies());
全部回答
  • 1楼网友:想偏头吻你
  • 2021-11-27 05:20
第三个参数是累加的初值,比如sum = accumulate(list1.begin(), list1.end(),10);那么sum的值就是容器里所有元素的值再加上这第三个参数10。同时返回值的类型与第三个参数的类型相同。希望可以帮到你,满意请采纳,谢谢!
  • 2楼网友:轻雾山林
  • 2021-11-27 04:30
将list1里面的值累加,第三个参数表示累加时初始值为0
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯