2011-11-27 99 views
1

对于固定阵列,初始化动态数组元素为零

// will initialize the missing elements to 0 as well 
    A[max_row][max_col] = {0,} 

我们能在动态阵列(多维的,尤其是)实现这一目标?

旁边的问题:如果我们不能,而且我们被迫使用嵌套循环,那么与嵌套循环初始化相比,上述技巧的初始化时间如何?


我不想向量,否则这个问题是没有意义的。感谢您的建议:)

+0

为什么不使用矢量< vector>您可以使用默认值初始化动态二维数组? – Arunmu

+1

我知道你可以做到这一点。每个人都想使用矢量,但我不想。对不起,我忘了包括这一点。不过谢谢。 – CppLearner

+1

关于你的第一个问题:当你尝试时发生了什么?关于你的第二个问题:内部C++将多维数组表示为一个类型为“无论”类型的内存位置的简单列表(无论你如何调用新的内容)。如果你这样做,你不需要嵌套for循环。您只需使用一个指针即可通过一个循环遍历行x col个位置。 – DavidO

回答

11

如果你这样做:new int[N]() /* note parenthesis */,那么他们都是零初始化。不过,你应该真的使用std::vector