Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;:哪些函数给出数组的和? < >我在C++中寻找函数,返回数组中所有元素的和,类似于我们在Matlab所使用的,即和(A),其中A是数组。 我知道可以简单地执行for循环,但是没有任何函数这样做,例如在“std::”中?_C++_Arrays_Sum - Fatal编程技术网

c++;:哪些函数给出数组的和? < >我在C++中寻找函数,返回数组中所有元素的和,类似于我们在Matlab所使用的,即和(A),其中A是数组。 我知道可以简单地执行for循环,但是没有任何函数这样做,例如在“std::”中?

c++;:哪些函数给出数组的和? < >我在C++中寻找函数,返回数组中所有元素的和,类似于我们在Matlab所使用的,即和(A),其中A是数组。 我知道可以简单地执行for循环,但是没有任何函数这样做,例如在“std::”中?,c++,arrays,sum,C++,Arrays,Sum,函数被调用并驻留在其中 它同时适用于标准库容器(能够提供inputierator,所以几乎每一个都可以)和C样式数组,只要您使用std::begin和std::end。否则container.begin()/end()当然可以;有关更多信息,请参阅示例使用 需要注意的是,它提供了两个重载,其中一个添加了二进制操作。在另一个版本中,它默认为std::plus。实际上,这意味着它从其他语言变成了折叠或减少 使用C样式数组的示例,由@BoBTFish-提供 #包括 #包括 #包括 int main(

函数被调用并驻留在其中

它同时适用于标准库容器(能够提供
inputierator
,所以几乎每一个都可以)和C样式数组,只要您使用
std::begin
std::end
。否则
container.begin()/end()
当然可以;有关更多信息,请参阅示例使用

需要注意的是,它提供了两个重载,其中一个添加了
二进制操作
。在另一个版本中,它默认为
std::plus
。实际上,这意味着它从其他语言变成了
折叠
减少


使用C样式数组的示例,由@BoBTFish-提供

#包括
#包括
#包括
int main()
{
int nums[]={1,5,3,2,7,8100,3};
标准::cout

@JeromeL的可能重复我敢肯定它不是重复的(至少是那个特定的Q)“专门用于C风格数组”?你的意思是
std::begin
std::end
是吗?@BoBTFish,嗯,你说得有点对。因为
acculate
使用
std::begin/end
它使用它的专门化。我会澄清这一点。也就是说,专门化是实现的一部分,而不是给出的签名(这并没有减少我最初的陈述的错误)。
std::acculate
不使用
std::begin/end
,尽管你在调用它时很可能使用它们。除非你指的是一些即将推出的范围版本,它还不是标准版本?@BoBTFish是的,在范围内思考是你几乎不会放弃的:).你当然是对的,很抱歉弄糊涂了。@BoBTFish我将把来源复制到答案中,希望你不介意。
#include <iostream>
#include <iterator>
#include <numeric>

int main()
{
    int nums[] = {1,5,3,2,7,8,100,3};
    std::cout
        << std::accumulate(std::begin(nums),
                           std::end(nums),
                           0)
        << '\n';
}