herrDeng網內搜尋

自訂搜尋

Ads

2021年11月8日 星期一

當代C++實作矩陣乘法

 
保留for迴圈架構 
採C++ STL vector 
採用C++ operator overloading運算子重載
程式碼函數如下:
  1. int N = 2;
  2. vector<double> row(N);
  3. void MatrixM(vector<vector<double>>& C, vector<vector<double>> A, vector<vector<double>> B) {
  4. for(int i=0; i<N; i++)
  5. for (int j = 0; j < N; j++) {
  6. C[i][j] = 0;
  7. for (int k = 0; k < N; k++)
  8. C[i][j] += A[i][k] * B[k][j];
  9. }
  10. }
  11. void print(vector<vector<double>>& C) {
  12. for (int i = 0; i < N; i++) {
  13. for (int j = 0; j < N; j++)
  14. cout << C[i][j] << "\t";
  15. cout << "\n";
  16. }
  17. }
  18. vector<vector<double>>operator* (vector<vector<double>> A, vector<vector<double>> B) {
  19. vector<vector<double>> C(N, row);
  20. MatrixM(C, A, B);
  21. return C;
  22. }

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章