我正在尝试找到2D Matrix的转置并想要创建一个函数 将我的2D数组和Matrix的值数作为输入并返回 转换2D矩阵。 我在C ++中编写了以下代码
#include <iostream>
#include <string>
using namespace std;
//int** transpose(int arr[][] , int n);
int k=2;
int ** transpose(int wt[1][k] , int n )
{
int trans[n][1];
for(int i=0;i<n;i++)
{
trans[i][1] = wt[1][i];
}
return trans ;
}
int main()
{ int n;
cin >> n;
int wt_vect[1][n];
for( int i=0;i<n;i++)
{
wt_vect[1][i] = 0.7;
}
int trans[n][1] = transpose(wt_vect , n);
}
但是获取错误日志如下
7:30:错误:数组绑定在&#39;]&#39;之前不是整数常量代币 7:32:错误:预期&#39;)&#39;之前&#39;,&#39;代币 7:34:错误:在&#39; int&#39;
之前预期的不合格ID请帮我找到使用功能的转置。 在此先感谢
答案 0 :(得分:2)
如果你使用C ++,我建议避免使用C风格的数组。
如果您知道维度的运行时间,则可以使用SnackBar
。
在您的情况下(第二维知道运行时间),您可以使用std::array
。
以下是一个完整的例子
std::vector
答案 1 :(得分:0)
基本上,数组大小必须在编译时知道,基本上它不能是一个可以有任何值,没有值或改变值的变量