herrDeng網內搜尋

自訂搜尋

Ads

2021年11月8日 星期一

當代C++實作矩陣乘法

 
保留for迴圈架構 
採C++ STL vector 
採用C++ operator overloading運算子重載
程式碼函數如下:
int N = 2;
vector<double> row(N);
void MatrixM(vector<vector<double>>& C, vector<vector<double>> A, vector<vector<double>> B) {
 	for(int i=0; i<N; i++)
 		for (int j = 0; j < N; j++) {
 			C[i][j] = 0;
 			for (int k = 0; k < N; k++)
 				C[i][j] += A[i][k] * B[k][j];
 		}
}
void print(vector<vector<double>>& C) {
 	for (int i = 0; i < N; i++) {
 		for (int j = 0; j < N; j++)
			 cout << C[i][j] << "\t";
 		cout << "\n";
	}
}
vector<vector<double>>operator* (vector<vector<double>> A, vector<vector<double>> B) {
 	vector<vector<double>> C(N, row);
	MatrixM(C, A, B);
 	return C;
}

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章