您好我在C++中實現了一個矩陣類
我知道有很多類似opencv的庫,但我需要自己做。在C++中的有效總和和賦值運算符重載
例如,如果我實現我可以這樣做
class Mat{
public:
double* data;
int rows,cols;
Mat(int r,int c):rows(r),cols(c){
data = new double[r*c];
}
};
void Sum(Mat& A,Mat& B,Mat& C){
for (int i = 0; i < A.rows*A.cols; ++i){
C.data[i] = A.data[i]+B.data[i];
}
}
int main(){
//Allocate Matrices
Mat A(300,300);
Mat B(300,300);
Mat C(300,300);
//do the sum
sum(A,B,C);
}
總和我想獲得更多的東西可讀喜歡這一點,但不失效率
C = A + B
這樣,C被重新分配,每時間,我不想那
謝謝你的時間
如果您使用C++ 11,看看http://stackoverflow.com/questions/3106110/what-is-move-semantics – NPE
你確定'C = A + B;'相當於'sum(A,B,C);'。它不應該看起來像'Sum = A + B + C'嗎? –
是的,它們是等價的我執行sum函數來總結前兩個矩陣並將結果保存在第三個 – Rosh