用C++
时间: 2023-07-11 11:12:27 浏览: 46
下面是一个基于C++的矩阵乘法的代码示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> matrix_multiply(vector<vector<int>>& A, vector<vector<int>>& B) {
int row_A = A.size(), col_A = A[0].size();
int row_B = B.size(), col_B = B[0].size();
if (col_A != row_B) {
throw invalid_argument("矩阵 A 和矩阵 B 不能相乘!");
}
vector<vector<int>> C(row_A, vector<int>(col_B, 0));
for (int i = 0; i < row_A; i++) {
for (int j = 0; j < col_B; j++) {
for (int k = 0; k < col_A; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
return C;
}
int main() {
vector<vector<int>> A = {{1, 2, 3}, {4, 5, 6}};
vector<vector<int>> B = {{7, 8}, {9, 10}, {11, 12}};
vector<vector<int>> C = matrix_multiply(A, B);
for (int i = 0; i < C.size(); i++) {
for (int j = 0; j < C[0].size(); j++) {
cout << C[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
该代码使用了 STL 中的 vector 容器来表示二维数组,函数接受两个 vector<vector<int>> 类型的参数 A 和 B,分别代表两个矩阵。函数首先检查两个矩阵是否可以相乘,如果不能相乘则抛出 invalid_argument 异常。接着使用三重循环计算矩阵乘积 C 的每个元素,最后返回结果矩阵 C。在主函数中,我们定义了两个示例矩阵 A 和 B,计算它们的乘积并输出结果。