是否有c ++方法可以动态创建0初始化的2-D整数数组? (比如在c)中使用calloc()。
答案 0 :(得分:0)
在基本类型之后添加一对括号,在动态创建它时使其为零。
例如,
int* a = new int();
int* b = new int;
然后* a == 0,* b ==!#$%#$ @ $%&
与数组相同,
int* a = new int[5]();
int* b = new int[5];
我想你已经知道他们发生了什么事。
所以这个技巧也可以用于2D数组。您可以尝试这样写作
int (*a)[10] = new int[5][10]();
答案 1 :(得分:0)
对于具有[][]
可访问的运行时维度的连续二维数组,没有标准构造。如果这是你想要的,那么下载一个Matrix库。 (如果你感到勇敢,那么你可以尝试自己编写)。
要制作锯齿状数组,您可以写:
vector<vector<int>> arr1{r, vector<int>(c)};
其中r
和c
是尺寸。