矩阵相乘c++迭代算法
时间: 2024-09-23 08:14:32 浏览: 22
矩阵相乘在C++中通常使用迭代法实现,特别是对于大矩阵,迭代方法比递归更高效。基本的迭代算法步骤如下:
1. 定义两个输入矩阵A和B,以及一个结果矩阵C,它们的维度需要满足矩阵乘法规则:C的列数等于A的行数,C的行数等于B的列数。
2. 使用嵌套循环遍历矩阵:
- 对于C矩阵中的每一个元素C[i][j],初始化为0。
- 遍历A的第i行和B的第j列,对应位置的元素分别表示为A[i][k]和B[k][j](这里的k是一个临时索引)。
- 将每个A[i][k]*B[k][j]的结果累加到C[i][j]上。
以下是简单的C++迭代版矩阵相乘代码示例:
```cpp
#include <vector>
using namespace std;
void matrixMultiplication(vector<vector<int>>& C, const vector<vector<int>>& A, const vector<vector<int>>& B) {
int m = A.size(), n = A[0].size(), p = B[0].size();
for (int i = 0; i < m; ++i) {
for (int j = 0; j < p; ++j) {
C[i][j] = 0;
for (int k = 0; k < n; ++k) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
```