我可以将向量作为initial_sum和不同的函数传递给 std::累积吗?

Can I pass a vector as an initial_sum and a different function to std::accumulate?

本文关键字:函数 std 向量 initial sum 我可以      更新时间:2023-10-16

我有下面的代码。我们的练习是使用 STL 算法。

有没有办法为此代码使用 std::accumulate?

如果您对此代码有不同的 STL 算法,那也没问题!(我们还将测试我们的时间复杂度。

void multiplyAndAddVector(const int num, std::vector<double>& tomultiply, std::vector<double>& toadd)
{
for(int i = 0; i < tomultiply.size(); i++)
{
toadd[i] += (tomultiply[i] * num);
}
}

>std::accumulate在这里不是一个合适的算法,因为它只给你一个值。

您需要读取 2 个范围并修改一个范围,您可以使用这样的std::transform

std::transform(toMultiply.begin(), toMultuply.end(), // input range 1
toAdd.begin(),                        // input range 2
toAdd.begin(),                        // output range 
[num](double mul, double add) { return add + mul * num; });
相关文章: