2010-07-20 85 views
8

我有一个双打的矢量,我需要创建另一个数组,它是第一个元素的累积和。例如;如何计算C++中双精度矢量的累加和?

vector<double> Array(10,1); 
vector<double> Sum(10); 

Sum[0] = Array[0]; 
for(unsigned int i=1; i<Array.size(); i++) 
    Sum[i] = Sum[i-1] + Array[i]; 

是否有一个内置函数将执行上述累计和?

+1

您使用哪种语言? – Oded 2010-07-20 09:03:27

+0

@Oded:这很可能是包含std名称空间的C++。任何确认Wawel? – Akusete 2010-07-20 09:04:05

+1

@Akusete - 可能,但可以是任何支持''''通用语法并具有类似于C的结构(Java,C#,C++ ...)的语言 – Oded 2010-07-20 09:05:01

回答

18

无需测试它,像

std::partial_sum(Array.begin(), Array.end(), Sum.begin(), plus<double>());

应该做的伎俩,如果是C++。 (实际上,plus<double>()可以默认出厂,it seems。)

+0

如果你想明确地传递二进制操作,它必须是'std :: plus ()'。 – Philipp 2010-07-20 09:27:40

+2

谢谢,我一直误会!现在,那是加上 ungood还是......?无论如何,大概总结到1984年! :-) – 2010-07-20 09:29:38

+1

#include 需要使用std :: partial_sum。 std :: plus 绝对不需要,如果数组是std :: vector 。 – 2015-04-17 04:13:11