2016-02-11 2 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 в своем вопросе, потому что это сделает ваш ответ отличным от самого одобренного и принятого ответа в уже предлагаемом дубликате. –