【问题标题】:How do you add all elements in a vector together? c++ [duplicate]如何将向量中的所有元素相加? C++ [重复]
【发布时间】:2016-05-22 18:22:55
【问题描述】:

我对编码很陌生,只是在玩向量,但是当元素的数量是用户定义的时,我似乎不知道如何将向量中的所有元素相加。

#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; 
        }
    }   
}

【问题讨论】:

  • while (NoOfItems &gt; 0) { ... }
  • 为什么所有变量都是全局变量?

标签: c++ vector


【解决方案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中所有元素的总和

【讨论】:

  • 那个,或者使用std::accumulate
  • @LouisDionne 同样,尽管考虑到用户似乎对 C++ 编程非常陌生,但我可能会推荐这种方法,以确保他们了解他们正在尝试做的事情的底层机制.
  • @Xirema 您至少应该在问题中提及@Louis 提案,因为这会使您的答案与已提议的副本中最受支持和接受的答案不同。
猜你喜欢
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多