Javatpoint标志
Javatpoint标志

c++ STL: Numeric头中的accumulate()和partial_sum()

什么是c++ STL?

在c++中,我们有STL,它也被称为标准模板库,它实现了许多内置函数,我们可以通过导入库直接使用它们。

以同样的方式,我们在STL中有一个数字库,而数字头是数字库的一部分。

数值头具有许多用于数学计算的内置函数,这为程序员节省了大量时间。

例如:

  1. 积累()
  2. partial_sum ()
  3. 极微小
  4. inner_product
  5. 减少
  6. 范围
  7. incluse_scan ()
  8. exclusive_scan ()

我们将在本文中讨论以下功能:

1.积累()

如果我们想要得到特定范围内数组元素的和,那么我们可以直接使用这个函数。否则,我们必须使用循环遍历数组,然后我们得到和。

有两种方式使用这个函数:

i)有三个论点

在这种类型中,这个函数有三个参数:起始位置、结束位置和一个变量sum,该变量sum将其初始值加到该范围内元素的和中。

语法:

c++的例子:

输出:

c++ STL: Numeric头中的accumulate()和partial_sum()

解释

在上面的代码中,我们将sum_variable初始化为值12。现在我们有一个9个元素的数组,我们使用从arr+0到arr+3的函数。这意味着它将把从索引0到索引2的值相加(最后一个位置索引被排除),然后它将把sum_variable的值加到我们得到的和中。

所以索引0到索引2的和是6,加上12,所以输出的值是18。

ii)有四个论点

在这个函数中,我们可以使用第四个参数作为我们在运行这个函数时要运行的另一个参数。

语法:

c++的例子:

输出:

c++ STL: Numeric头中的accumulate()和partial_sum()

解释:

在上面的代码中,我们创建了一个mult函数,它返回两个数字的乘法值。

因此,我们将从索引0到索引3的值相乘,即24,然后这个结果将再次乘以我们的sum_variable,因此它将打印24x12的值,即288。

1.partial_sum ()

如果我们想从一个范围中获得一个数组的部分和,并将这个结果存储在另一个数组中,那么我们可以很容易地使用这个函数。

我们可以用两种方式使用这个函数:

i)有三个论点

在这种类型中,我们将有三个参数:一个是起始位置,第二个是被排除的最后一个索引,第三个是我们想要存储结果的数组。

语法:

假设数组中有n个元素,下标从0到n-1。因此,如果我们想要得到从索引L到索引R的部分和,那么我们将创建大小为R-L+1的合成数组,合成数组中的值将按如下方式存储:

Let res[]是结果数组,则:

c++的例子:

输出:

c++ STL: Numeric头中的accumulate()和partial_sum()

解释:

在上面的例子中,我们将得到下标2到下标5的部分和,并将这四个值存储在数组b中。

所以b[0]=arr[2] = 3

b [1] = arr [2] + arr [3] = 7

b [2] = arr [2] + arr[3] +[4]的arr = 12

b [3] = arr [2] + arr [3] + arr [4] + arr [5] = 18

ii)有四个论点

我们可以用第四个参数作为另一个函数来定义部分和的定义。

语法:

c++的例子:

输出:

c++ STL: Numeric头中的accumulate()和partial_sum()

解释:

在上面的代码中,我们有自己的函数,以便根据自己的函数在结果数组中获得输出。

arr b [0] = [2] = 3

b [1] = 2 * arr [3] - b [0] = 5

b [2] = 2 * arr [4] - b [1] = 5

b [3] = 2 * arr [5] - b [2] = 7


下一个话题 c++ STL中的向量数组





Youtube 观看视频请加入我们的Youtube频道:现在加入

反馈


帮助他人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


B.Tech / MCA






Baidu
map