首页 > 其他分享 >accumulate 累加求和

accumulate 累加求和

时间:2024-07-21 12:00:25浏览次数:13  
标签:求和 累加 int init InputIterator accumulate using include first

返回值一定是int

#include <iostream>
#include <functional>
#include <string>
#include<vector>
#include<deque>
#include<algorithm>
#include<numeric>
#include<map>
using namespace std;
struct Account
{
	int money;
};
int main()
{
	vector<int> vi{ 10, 20, 30 };
	vector<Account> accs{ {100},{200},{300} };
	map<string, int> m{ {"dog",3,},{"cat",2} ,{"fox",1 } ,{"crow",2}};
	cout << accumulate(vi.begin(), vi.end(), 0, plus<int>()) << endl;
	cout << accumulate(vi.begin(), vi.end(), 0, [](int i, int j)->int {return i + j; }) << endl;
	cout << accumulate(accs.begin(), accs.end(), 0, bind(plus<int>(), placeholders::_1, bind(&Account::money, placeholders::_2))) << endl;
	cout << accumulate(m.begin(),m.end(),0,bind(plus<int>(), placeholders::_1,bind(&map<string,int>::value_type::second, placeholders::_2))) << endl;
}
#include <iostream>
#include <functional>
#include <string>
#include<vector>
#include<deque>
#include<algorithm>
#include<numeric>
#include<map>
using namespace std;
using InputIterator = vector<int>::iterator;
using T = int;
using BinaryOpertion = function<int(int, int)>;
int accumulate(InputIterator first, InputIterator last, T init)
{
	for (;first != last ; ++first) init = init + *first;
	return init;
}
int accumulate(InputIterator first, InputIterator last, T init, BinaryOpertion binary_op)
{
	for (;first != last ;++first) init = binary_op(init,*first);
	return init;
}
int main()
{
	vector<int> vi{ 10, 20, 30 };
	cout << accumulate(vi.begin(),vi.end(),0) << endl;
	cout << accumulate(vi.begin(), vi.end(), 0, [](int i, int j)->int {return i + j;}) << endl;
}





标签:求和,累加,int,init,InputIterator,accumulate,using,include,first
From: https://blog.csdn.net/WNX10086/article/details/140575120

相关文章

  • 简单的数论函数及其求和方法
    目录数论函数记号与约定线性筛两例变量分离关于\(\mu^2(i)\)狄利克雷卷积狄利克雷卷积基本性质几个简单的狄利克雷卷积狄利克雷卷积的求法(特别鸣谢:pp_orange)当\(f,g\)是普通函数时当\(f\)为积性函数时当\(f,g\)为积性函数时杜教筛前置:\(\sum\limits_{i=1}^{n}i^k......
  • Spring boot 与 json_schema ,请求和响应 校验
    java中如何使用json_schema对json进行校验在Java中使用JSONSchema对JSON进行校验,你首先需要选择一个合适的库。一个常用的库是json-schema-validator。以下是如何使用它的基本步骤:添加依赖如果你使用Maven,可以在pom.xml中添加以下依赖:<dependency><groupId>com.g......
  • http协议简介以及其请求和响应
    简介HTTP是hypertexttransferprotocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。H......
  • 级数求和
    题目描述已知:Sn​=1+1/2+1/3+…+1/n。显然对于任意一个整数......
  • 有趣的求和(前缀和)
    描述给出n个数排成一排,你可以任意选出连续的L个数字求和。例如:n=5L=4-2030805040连续取L个数的方法有两种。1、取前4个数-20308050和为140。2、取后4个数30805040和为200。请你找出最大和是多少,上例结果应该为200。输入描述第1行为两正整数n和L表示数......
  • C++--accumulate介绍
    在C++中,accumulate是一个用于对容器中的元素进行累加操作的函数模板,位于头文件中。它允许你对容器(如vector或array)中的元素进行累加运算,并返回累加的结果。源代码展示template<classInputIterator,classType>Typeaccumulate(InputIterator_First,//开始迭代......
  • Stream流求和
    Stream流对List<Object>和Set<Object>求和泛型为Integer、Long、Double、BigDecimal的求和使用reduce+orElseIntegersum=scores.stream().reduce(Integer::sum).orElse(0);Longsum=scores.stream().reduce(Long::sum).orElse(0L);Doublesum=scores.stream().r......
  • 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树
    代码随想录算法训练营第22天|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树修剪二叉搜索树:https://leetcode.cn/problems/trim-a-binary-search-tree/description/代码随想录:https://programmercarl.com/0669.修剪二叉搜索树.html#......
  • Java——N以内累加求和
    2024/07/151.题目2.错误3.分析4.答案1.题目2.错误importjava.util.Scanner;publicclassMain{ publicstaticvoidmain(String[]args){ Scannerscanner=newScanner(System.in); intN=scanner.nextInt(); intsum=0; while(N<=1000){ for(......
  • Excel第29享:基于sum嵌套sumifs的多条件求和
    1、需求描述如下图所示,现要统计12.17-12.23这一周各个人员的“上班工时(a1)”。下图为系统直接导出的工时数据明细样例。2、解决思路首先,确定逻辑:“对多个条件(日期、人员)进行“工时”列求和”。故选择sumifs函数,由于是“日期”字段有多个数值,故与sum函数嵌套使用;其次,sumif......