开发者社区> 流楚丶格念> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

std::accumulate的具体用法

简介: std::accumulate的具体用法
+关注继续查看

std :: accumulate


作用累加求和,对于字符串可以将其连接起来(string类型的加,相当于字符串连接)


头文件


#include <numeric>


原型


accumulate (InputIterator first, InputIterator last, T init, BinaryOperation binary_op);


参数


  • first,last:


将迭代器输入到序列中的初始位置和最终位置。使用的范围是[first,last),它包含所有的元件第一和最后一个,包括由指向的元件第一但不被指向的元素最后。


  • init


累加器的初始值。


  • binary_op


自定义数据类型, accumulate提供了回调函数(第四个参数),来实现自定义数据的处理。


返回值


累积 init 和范围内所有元素的结果 [first,last)。


用例1


image


#include <iostream>     // std::cout
#include <numeric>      // std::accumulate
#include <functional>   // std::minus

int myfunction(int x, int y)
{
    return 2 * x + y;
}


int main() {
    int init = 100;
    int numbers[] = { 10,20,30 };

    std::cout << "使用默认 accumulate: ";
    std::cout << std::accumulate(numbers, numbers + 3, init);
    std::cout << '\n';

    std::cout << "使用自定义 custom function accumulate: ";
    std::cout << std::accumulate(numbers, numbers + 3, init, myfunction);
    std::cout << '\n';

    return 0;
}


用例2:Lambda表达式


#include <iostream>
#include <numeric>
#include <vector>
#include <string>
#include <functional>

int main()
{
    std::vector<int> v{ 5,2,1,1,3,1,4 };
    std::string s = std::accumulate(
        std::next(v.begin()),
        v.end(),
        std::to_string(v[0]),
        [](std::string a, int b) {
        return a + '-' + std::to_string(b);
    });

    // 5-2-1-1-3-1-4
    std::cout << s << std::endl;
    return 0;
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【语音识别】基于MPCC+IPL特征结合SVM实现中英语种识别含Matlab源码
【语音识别】基于MPCC+IPL特征结合SVM实现中英语种识别含Matlab源码
12 0
百度市值再被超,AI能不能成为决胜所在?
AI或许能成为百度未来营收的重要增长点,同时,提振资本市场的信心,提高自身的市值。
65 0
AI比医生厉害?BMJ发文担忧AI的表现被 “夸大”
社会的数字化意味着我们正在以前所未有的速度积累者数据,医疗方面也不例外。据IBM 估计,每个人一生中大约会积累 100 万兆字节的数据,全球医疗保健数据的总量每隔几年就会翻一番。
540 0
Action的动态调用方法
Action执行的时候并不一定要执行execute方法,我们可以指定Action执行哪个方法: 1、 方法一(通过methed属性指定执行方法): 可以在配置文件中配置Action的时候用method=来指定执行哪个方法             /user_add_success.jsp     这样,只要在action的对象中有一个add的方法,并且返回类型为String就可以了。
581 0
LoadRunner基于HTML-based script和URL-based script方式录制的区别和各自的使用场景
一、区别:   为了更加直观的区别这两种录制方式,我们可以分别使用这两种方式录制同一场景(打开百度首页)然后进行对比,录制的代码如下: HTML-based script方式打开百度首页: Action() { web_url("www.
780 0
主题:讲解三层代码讲解(ActiveList的Action的工作方式)--第五课(*****) DATE:2004-06-03
主题:讲解三层代码讲解(ActiveList的Action的工作方式)--第五课(*****)主讲:A1时间:2004-06-03 15:00 2004-06-03 14:52:19 烟灰缸叮。。。叮。
576 0
+关注
流楚丶格念
csdn平台优质创作者,51cto TOP博主,360图书馆科技博主,燕山大学目前大三在读,日拱一卒,功不唐捐,加油!!!
1010
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载