我是一名C++初学者,我正在尝试编写一个方法,它将采用两个向量并将它们的内容组合在一起。在C++中添加矢量
例如, v1 {1,2,3} + v2 {2,4,6}应该产生v3 {3,6,9}。
这里是我的代码看起来像现在:
Vec Vec::operator+(const Vec& original){
if(mySize != original.mySize){
throw invalid_argument ("No!");
}
Item* sumVector = new Item(mySize);
for(unsigned i=0; i<mySize; i++){
sumVector[i] = myArray[i] + original.myArray[i];
}
return * sumVector;
}
但是,这是行不通的,因为我的说法v3.getItem(0)== 3失败。如果你回答这个问题,我相信你已经知道了,但Vec是我的一个类的名字,Item是一个typedef double。
'sumVector'是一个指针(它不需要,它不应该是这样。)想一下当运算符[]在应用于指针时的作用。 – juanchopanza 2014-09-29 20:31:15
哦,没有内存泄漏操作员!你为什么按价值返回一个新对象? – Borgleader 2014-09-29 20:31:50
嘿欢迎_ @ TheFaceOfBlue_!在开始推出自己的产品之前,使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)怎么样?有很多障碍和陷阱来完成它,并且几乎从不值得这样做,以获得专有的实现。 – 2014-09-29 20:35:46