C++--accumulate介绍

在C++中,accumulate是一个用于对容器中的元素进行累加操作的函数模板,位于 头文件中。它允许你对容器(如vector或array)中的元素进行累加运算,并返回累加的结果。

源代码展示

cpp 复制代码
template<class InputIterator, class Type>  
Type accumulate(  
InputIterator _First,  //开始迭代器  
InputIterator _Last,   //结束迭代器  
Type _Val              //初始值  
);

源码剖析

cpp 复制代码
template<class InputIterator, class T> 
T accumulate( 
InputIterator first,  
InputIterator last,   
T init ) 
{
    for(;first != last; ++first) 
        init = init + *first; //默认为累加 
    return init; 
}

应用举例

cpp 复制代码
 #include <iostream> 
    #include <vector> 
    #include <numeric> 
    using namespace std; 
    int main() 
    {
        vector<int>v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
        auto sum = accumulate(v.begin(), v.end(), 0);//把v的所有值累加,初始值为0

    
        cout << "累加结果为:"<<sum<<endl; 
    
        return 0; 
    }

本篇完!

相关推荐
流星白龙19 分钟前
【C++算法】75.优先级队列_数据流中的第 K 大元素
开发语言·c++·算法
Monkey的自我迭代19 分钟前
python线性回归:从原理到实战应用
开发语言·python·机器学习
德育处主任Pro29 分钟前
p5.js 三角形triangle的用法
开发语言·javascript·ecmascript
你我约定有三31 分钟前
分布式微服务--RPC:原理、使用方式、与 HTTP/REST 的区别与选择
java·开发语言·分布式·后端·微服务·rpc
刚入坑的新人编程39 分钟前
暑期算法训练.10
数据结构·c++·算法·排序算法
孞㐑¥41 分钟前
Linux之网络部分-应用层协议 HTTP
linux·开发语言·c++·经验分享·笔记
重启的码农1 小时前
KCP源码解析 (6) 拥塞控制(Congestion Control)
c++·网络协议
小蛋编程1 小时前
【算法-图论】图的存储
c++·算法·图论
楼田莉子1 小时前
C++学习之继承
开发语言·c++·学习·visual studio
下页、再停留2 小时前
【PHP】通过IP获取IP所在地理位置(免费API接口)
开发语言·tcp/ip·php