2010-07-20 83 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