2010-07-20 22 views
8

मेरे पास युगल का वेक्टर है और मुझे एक और सरणी बनाने की आवश्यकता है जो पहले के तत्वों का एक संचयी योग है। उदाहरण के लिए;सी ++ में युगल के वेक्टर के संचयी योग की गणना कैसे करें?

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

+0

@ ओडेड: यह संभवतः सीडी ++ है जिसमें स्टडी नेमस्पेस शामिल है। वेवेल से कोई पुष्टि? – Akusete

+1

@Akusete - संभवतः, लेकिन कोई भी भाषा हो सकती है जो '<>' जेनेरिक वाक्यविन्यास का समर्थन करती है और इसमें सी जैसे संरचना (जावा, सी #, सी ++ ...) – Oded

उत्तर

18

के बिना यह परीक्षण किया है, कुछ

तरह

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

चाल करना चाहिए, अगर यह सी है ++। (दरअसल, plus<double>() को डिफॉल्ट किया जा सकता है, it seems।)

+0

यदि आप बाइनरी ऑपरेशन को स्पष्ट रूप से पास करना चाहते हैं, तो यह 'std :: plus ()' होना चाहिए। – Philipp

+2

धन्यवाद, मैं हमेशा misremember! अब, वह प्लस असहज था या क्या ...? शायद 1 9 84 में सम्मिलित, वैसे भी! :-) –

+1

# std :: partial_sum का उपयोग करने के लिए शामिल करें। std :: प्लस निश्चित रूप से की जरूरत नहीं है, तो सरणी प्रकार std :: वेक्टर की है। –

संबंधित मुद्दे