-3
我想创建一个函数,它将许多多维数组作为参数并返回另一个多维数组。例如矩阵乘法,有2个数组Matrix1 [n] [m]和Matrix2 [m] [k],我的函数必须返回Result [n] [k]。C++中的多维数组
在java中;
/**
* @param m1 Matrix 1
* @param m2 Matrix 2
* @return Matrix1*Matrix2
*/
public static long[][] matrixMult(long[][] m1, long[][] m2){
long[][] mult = new long[m1.length][m2[0].length];
for (int i = 0; i < m1.length; i++) {
for (int j = 0; j < m2[0].length; j++) {
for (int k = 0; k < m1[0].length; k++) {
mult[i][j] += m1[i][k] * m2[k][j];
}
}
}
return mult;
}
这只是一个示例代码。
我想用C++做同样的事情;
int main()
{
int m1, m2, n1, n2;
scanf("%d %d", &m1, &m2);
int matrix1[m1][m2];
// Take array values
scanf("%d %d", &n1, &n2);
int matrix2[n1][n2];
// Take array values again
if(m2 == n1){
// I need to multiply those arrays Matrix1 and Matrix2 and assign the product as a array to Result[][]
// int result[][] = ...
}
}
你忘记描述阻止你完成代码的问题。堆栈溢出是我们帮助解决问题的地方,而不是自由代码重写服务。 – Pshemo
'int matrix1 [m1] [m2];'不是标准的C++(它是一个VLA扩展)。改用'std :: vector'。 – Jarod42
@Pshemo问题是当我试图定义一个数组时,我得到错误 - 可能是因为语法 - 我不明白为什么。错误没有意义,int **和int [] []是不同的,转换错误,sizetype错误,我有这么多的错误。这就是为什么我无法解释实际的错误,因为我不知道什么是错的。我不想使用矢量,我需要使用数组。到处搜索这样的东西,但我找不到它。这就是为什么我在这里..:/ – codebender