这个问题很愚蠢,但我需要以一种非常有效的方式来做——它将在我的代码中一遍一遍地执行。我有一个返回 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>());
这会迭代 result
和 result_temp
,应用 plus
来添加 double ,并将总和写回 result
.
关于c++ - 如何逐个添加两个 STL vector 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376124/