【发布时间】:2010-07-30 23:45:43
【问题描述】:
这个问题很愚蠢,但我需要以一种非常有效的方式来做——它将在我的代码中一遍一遍地执行。我有一个返回向量的函数,我必须将返回的值逐个元素添加到另一个向量中。很简单:
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
可以做什么?
谢谢
编辑:添加了一个简单的初始化,因为这不是重点。结果应该如何初始化?
【问题讨论】:
-
你会发布一些可编译的代码吗?如果没有看到这些向量是如何初始化的,“这给了我一个段错误”并不是特别有用。最可能的问题是其中一个向量比另一个长。如果不查看所有代码,真的很难判断你的代码哪里错了:-)
-
我支持@James McNellis - 只要
result和result_temp的长度相同,这段代码似乎是正确的。另外——你为什么声明result,但使用变量result_v——代码是这样写的吗?如果是这样,那就是个问题