如何在C++中添加数组中的所有数字?

Sha*_*y77 15 c++ arrays addition

而不是打字

array[0] + array[1] //.....(and so on)
Run Code Online (Sandbox Code Playgroud)

有没有办法将数组中的所有数字相加?我正在使用的语言是c ++我希望能够以更少的输入来完成它,而不是我刚输入的语言.

das*_*ght 35

以下是在C++中执行此操作的惯用方法:

int a[] = {1, 3, 5, 7, 9};
int total = accumulate(begin(a), end(a), 0, plus<int>());
Run Code Online (Sandbox Code Playgroud)

演示.

  • 值得注意的是添加是默认值. (10认同)
  • 另外值得注意的是,对于除`int`以外的类型,第三个参数必须是正确类型的0,例如在汇总`double`s时为0.0. (2认同)
  • 我不知道为什么或何时改变,但我必须`#include &lt;numeric&gt;` 才能工作。[Cppreference.com](http://en.cppreference.com/w/cpp/algorithm/accumulate) 证实了这一点。 (2认同)

Red*_*ert 11

说你有int array[N].

你可以简单地做:

int sum = 0;
for(auto& num : array)
    sum += num;
Run Code Online (Sandbox Code Playgroud)

  • @Ciro:这不是累积的唯一优势.如果你有`int array [100];`并且你将它的一部分排序为`sort(a,a + n);`,那么带累积的解决方案允许我创建一行美丽的求和:`int revenue = accumulate (a,a + min(m,n),0);`.您可以在这里查找我使用它的代码:[codeforces.com - Sereja和Coat Rack](http://codeforces.com/contest/368/submission/12620328) (2认同)

小智 7

尝试这个:

int array[] = {3, 2, 1, 4};
int sum = 0;

for (int i = 0; i < 4; i++) {
    sum = sum + array[i];
}
std::cout << sum << std::endl;
Run Code Online (Sandbox Code Playgroud)

  • 你应该解释你的答案。他们有很多关于这个问题的答案,并被标记为已接受 (4认同)