gpt4 book ai didi

c++ - 如何逐个添加两个 STL vector 的元素?

转载 作者:IT老高 更新时间:2023-10-28 12:58:41 24 4
gpt4 key购买 nike

这个问题很愚蠢,但我需要以一种非常有效的方式来做——它将在我的代码中一遍一遍地执行。我有一个返回 vector 的函数,我必须将返回的值逐个元素添加到另一个 vector 中。很简单:

vector<double> result;
vector<double> result_temp
for(int i=0; i< 10; i++) result_temp.push_back(i);

result += result_temp //I would like to do something like that.
for(int i =0; i< result_temp.size();i++)result[i] += result_temp[i]; //this give me segfault

我正在尝试做的数学运算是

u[i] = u[i] + v[i] 对于所有 i

可以做什么?

谢谢

编辑:添加了一个简单的初始化,因为这不是重点。结果应该如何初始化?

最佳答案

看起来问题确实是访问不存在的 result 值。 tzaman 展示了如何将结果初始化为 10 个元素,每个元素的值为 0。

现在您需要调用 transform 函数(来自 ),应用 plus 函数对象(来自 ):

std::transform(result.begin(), result.end(), result_temp.begin(),
result.begin(), std::plus<double>());

这会迭代 resultresult_temp,应用 plus 来添加 double ,并将总和写回 result.

关于c++ - 如何逐个添加两个 STL vector 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com