矩阵相乘(运算符重载)
时间: 2023-08-12 07:28:57 浏览: 70
好的,我可以为你提供一个矩阵相乘的运算符重载实现。以下是一个简单的示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
class Matrix {
public:
vector<vector<int>> data;
Matrix() {}
Matrix(vector<vector<int>> _data) : data(_data) {}
// 矩阵相乘运算符重载
Matrix operator*(const Matrix& other) const {
Matrix result;
int m = data.size();
int n = other.data[0].size();
int k = other.data.size();
result.data.resize(m, vector<int>(n, 0));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
for (int l = 0; l < k; l++) {
result.data[i][j] += data[i][l] * other.data[l][j];
}
}
}
return result;
}
};
int main() {
Matrix A({{1, 2}, {3, 4}});
Matrix B({{5, 6}, {7, 8}});
Matrix C = A * B;
for (auto row : C.data) {
for (auto elem : row) {
cout << elem << " ";
}
cout << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个Matrix类,其中包含一个二维vector作为矩阵数据。然后,我们在类中重载了*运算符,实现了矩阵相乘的功能。在主函数中,我们创建了两个矩阵A和B,并将它们相乘得到了结果矩阵C。最后,我们遍历输出了矩阵C的数据。