2016-02-11 135 views
-2

我对编码非常陌生,只是玩弄矢量,但我似乎无法找到如何在元素数量由用户定义时一起添加矢量中的所有元素。如何将矢量中的所有元素一起添加? C++

#include <iostream> 
#include <vector> 

using namespace std; 

int NoOfItems; 
int i=1; 
double Odds; 
double Cost; 
vector<double> CaseNumber; 

int main() 
{ 
    cout << "How many items in the case: "; 
    cin >> NoOfItems; 
    while (true) {  
     if (NoOfItems == 0) { 
      break; 
     } else { 
      cout << "Odds for item " << i <<endl; 
      cin >> Odds; 
      CaseNumber.push_back(Odds); 
      NoOfItems = NoOfItems - 1; 
      i = i + 1; 
     } 
    } 
} 
+1

'while(NoOfItems> 0){...}' –

+0

为什么你的所有变量都是glob人? –

回答

1

你会想花一些时间清理你的代码。有一些非常可疑的代码约定被使用。

不管怎么说,总结所有的向量的元素:

double sum = 0; 
for(size_t index = 0; index < CaseNumber.size(); index++) { 
    sum += CaseNumber[index]; 
} 

或者,在某种程度上这是稍微更友好的C的语义++:

double sum = 0; 
for(double & d : CaseNumber) { 
    sum += d; 
} 

要么将​​导致变量sum包含所有元素的总和CaseNumber

+8

那,或者使用'std :: accumulate'。 –

+0

@LouisDionne虽然考虑到用户似乎对C++编程极其新颖,但我可能会推荐这种方法,以确保他们了解他们正在尝试执行的操作的基本机制。 – Xirema

+0

_ @ Xirema_您至少应该在您的问题中提及@Louis提案,因为这会使您的答案与已提出的重复中的最高优先和被接受的答案不同。 –

相关问题