c++ 二维数组乘积函数
时间: 2024-06-24 09:02:14 浏览: 249
C#二维数组乘法算法
4星 · 用户满意度95%
在C++中,创建一个计算二维数组(也称为矩阵)乘积的函数需要遵循一定的规则,因为矩阵乘法遵循特定的规则,即只有当第一个矩阵的列数等于第二个矩阵的行数时,两个矩阵才能相乘。以下是一个简单的示例,展示了如何编写一个函数来计算两个二维数组(假设是整数数组)的乘积:
```cpp
#include <vector>
// 定义一个模板函数来计算二维数组的乘积
template<typename T>
T** matrixMultiplication(std::vector<std::vector<T>>& matrix1, std::vector<std::vector<T>>& matrix2) {
int m1 = matrix1.size();
int n1 = matrix1.size();
int m2 = matrix2.size();
int n2 = matrix2.size();
// 检查是否可以进行乘法运算
if (n1 != m2) {
throw std::invalid_argument("Matrix dimensions are not compatible for multiplication.");
}
// 创建一个新的矩阵来存储结果
T** result = new T*[m1];
for (int i = 0; i < m1; ++i) {
result[i] = new T[n2];
for (int j = 0; j < n2; ++j) {
result[i][j] = 0;
}
}
// 实际的矩阵乘法
for (int i = 0; i < m1; ++i) {
for (int j = 0; j < n2; ++j) {
for (int k = 0; k < n1; ++k) { // 遍历矩阵2的列
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
return result;
}
```
使用这个函数时,首先要确保传入的两个矩阵符合乘法要求,然后调用它并传递两个矩阵的引用。注意,这个函数返回的是一个新的二维动态数组,因为原始矩阵在函数结束后不会被保留。
阅读全文