C++ STL 中的数组求和

2024 年 8 月 28 日 | 3 分钟阅读

在 C++ 中使用 accumulate 可以高效地求数组和 ()

数组是一种线性数据结构,它包含相同数据类型元素,并以连续的内存流存储。

数组中所有项的和称为数组和。

在 C++ 编程语言中,有多种方法可以找到数组和。

输出

30

时间复杂度:O(n)

空间复杂度:O(n),其中 n 是数组的大小。

向量和

输出

30

时间复杂度:O(n)

空间复杂度:O(n),其中 n 是数组的大小。

经典技术

计算数组元素和的最简单方法是遍历它们,同时将元素的值添加到和变量中。

算法

步骤 1:对于从 0 到 n-1 的 i,执行步骤 2;

步骤 2:sum = sum + arr[i]

步骤 3:打印 sum。

示例

在线演示

输出

The array sum is 39

使用 Accumulate 方法

C++ 中的 accumulate 方法用于求数组和。此函数可以从 C++ 的 numeric 库中访问。numeric 库头文件需要包含在代码开头才能使用此方法,其中包含 accumulate() 函数的定义。

语法

示例

在线演示

输出

The array sum is 39

使用向量和

您也可以在向量上使用 accumulate 函数。它将返回向量形式的数组和。

示例

在线演示

输出

The sum of array is 239

使用 for 循环

我们可以使用 for 循环遍历数组。所有元素可以逐个相加。

初始化 sum = 0。

运行一个从 i = 0 到 i = size - 1 的 for 循环。

在 for 循环的每次迭代中,将 sum 和数组的当前元素相加,即 sum = sum + arr[i]。

在 for 循环结束时,所有元素的和将存储在 sum 变量中。

输出

The sum of the elements in the array: 20

使用 valarray sum() 函数

通过调用 valarray 类的成员函数 sum,可以直接对 valarray 对象执行求和操作,该函数用于代替普通数组 ()。