所以我这段代码:C++向量加法补偿误差:
#include <iostream>
#include <vector>
using namespace std;
vector <int> suma(vector <int> t, vector <int> m){
int i;
vector <int> sumat;
for(i=0; i<t.size();i++){
sumat[i]=t[i]+m[i];
}
return sumat;
}
int main(){
vector <int> a(4,0);
a[0]=5;
a[1]=5;
a[2]=3;
a[3]=0;
vector <int> b(4,0);
b[0]=5;
b[1]=5;
b[2]=3;
b[3]=0;
cout<< suma(a,b) <<endl;
}
这是比较错误我得到的最后一行COUT:
[Error] no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream}' and 'std::vector')
这是为什么?
呵呵,但是funcion还好吗? – 2014-11-06 23:47:32
不需要。在使用operator []之前,您需要将元素推回到sumat或调整其大小。你还需要检查't'和'm'是否是相同的大小,或者只是列举到较小的那个边界。 – NtscCobalt 2014-11-06 23:53:15
@Burnsedd不,我回答了你的问题,但还有很多其他问题。 – patros 2014-11-07 18:20:26