C++中的accumulate

原创 2016年08月30日 22:13:43
// accumulate example
#include <iostream>     // std::cout
#include <functional>   // std::minus
#include <numeric>      // std::accumulate

int myfunction (int x, int y) {return x+2*y;}
struct myclass {
    int operator()(int x, int y) {return x+3*y;}
} myobject;

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

  std::cout << "using default accumulate: ";
  std::cout << std::accumulate(numbers,numbers+3,init);
  std::cout << '\n';

  std::cout << "using functional's minus: ";
  std::cout << std::accumulate (numbers, numbers+3, init, std::minus<int>());
  std::cout << '\n';

  std::cout << "using custom function: ";
  std::cout << std::accumulate (numbers, numbers+3, init, myfunction);
  std::cout << '\n';

  std::cout << "using custom object: ";
  std::cout << std::accumulate (numbers, numbers+3, init, myobject);
  std::cout << '\n';

  return 0;
}

需要#include <numeric>
std::accumulate(numbers,numbers+3,init); init 是求和的初始值
也可以自己定义计算的方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c++STL之accumulate

介绍  用来计算特定范围内(包括连续的部分和初始值)所有元素的和,除此之外,还可以用指定的二进制操作来计算特定范围内的元素结果。其头文件在numeric中。   accumulate原函数声明定义...

C++语法基础--泛型算法(generic algorithm)--只读算法accumulate(),find_first_of(),count(),count_if()

注:泛型算法实在太多,太繁杂,全都掌握也不现实,也没有必要。所以暂时只研究一些常用的算法。  1.只读算法   *accumulate(在numeric头文件中定义)    Computes th...

从零开始学C++之STL(七):剩下5种算法代码分析与使用示例(remove 、rotate 、sort、lower_bound、accumulate)

一、移除性算法 (remove)  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25...

【C++ STL应用与实现】86: 如何使用std::accumulate

本文总结了STL算法中,数值类算法(numeric algorithm)里的第一个算法: std::accumulate的使用, 及注意事项
  • elloop
  • elloop
  • 2015-12-18 09:45
  • 8608

C++ STL算法之accumulate函数

1. 介绍  用来计算特定范围内(包括连续的部分和初始值)所有元素的和,除此之外,还可以用指定的二进制操作来计算特定范围内的元素结果。其头文件在numeric中。   accumulate原函数声明...

C++并发实战5:并行化的std::accumulate

std::thread::hardware_concurrency()可以返回CPU个数,在C++库不能获取CPU信息下可能返回0。该信息是非常有用的,当线程数超过CPU cores会频繁的引起上下文...

C++ 11.2 accumulate、find_first_of 函数

简介 使用泛型算法必须包含头文件 ——–# include 标准库还定义了一组泛化的算术算法,其命名习惯与泛型算法相同。使用这些算法必须包含头文件——–#include ===============...

std::transform || inner_product || accumulate

该问题归结为std::transform函数的使用 函数原型 template OutputIterator transform ( InputIterator first1, In...

STL之accumulate

需要的头文件: numeric 源码://版本1 template _Tp accumulate(_InputIterator __first, _InputIterator __las...

C++ 选课系统

C++ 选课系统
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)