Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
3年前关闭。
Improve this question
在C++中,我感到非常不便,因为C++没有内置功能来在运行时为多维数组动态分配内存。
在Java中,我们只需一行代码即可完成。例如,在Java中,我们可以使用以下命令为4D整数数组动态分配内存:
我用谷歌搜索解决方案以在C++中执行相同的操作。但是我发现,在C++中,我们必须使用嵌套循环,容器或带有函数的某些结构来实现相同的目的。由于这样的语法功能非常方便,我想问一下为什么C++没有合并这样的内置功能?
还是一样
或者您可以使用像
问题在于除最左边以外的正方形中的表达式必须是常数表达式。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
3年前关闭。
Improve this question
在C++中,我感到非常不便,因为C++没有内置功能来在运行时为多维数组动态分配内存。
在Java中,我们只需一行代码即可完成。例如,在Java中,我们可以使用以下命令为4D整数数组动态分配内存:
int a, b, c, d;
std::cin>>a>>b>>c>>d;
int[ ][ ][ ][ ] array = new int[a][b][c][d];
我用谷歌搜索解决方案以在C++中执行相同的操作。但是我发现,在C++中,我们必须使用嵌套循环,容器或带有函数的某些结构来实现相同的目的。由于这样的语法功能非常方便,我想问一下为什么C++没有合并这样的内置功能?
最佳答案
在C++中,您也可以通过这种方式分配内存。例如 :)
auto array = new int[3][4][5][6];
还是一样
int ( *array )[4][5][6] = new int[3][4][5][6];
或者您可以使用像
typedef int T[4][5][6];
// or
// using T = int[4][5][6];
T *array = new T[3];
问题在于除最左边以外的正方形中的表达式必须是常数表达式。
07-24 14:15