C++ 在c+;中设置2D数组的默认值+;
我有一个像C++ 在c+;中设置2D数组的默认值+;,c++,multidimensional-array,C++,Multidimensional Array,我有一个像a[100000][100000]这样的大型2D数组。我不想迭代并给每个块赋值0。如何在初始化时给出数组默认值0?memset(a,0,sizeof a);一个通用选项:std::memcpy(尽管要小心),您也可以执行A[10][10]={{0}或a[10][10]={0}或a[10][10]={}@Caw:你测试过吗?这对我来说是新的,我希望你是对的。如果是这样,您应该将其作为答案添加到副本中。@Stefan是的,请参见6.7.8.21这会将所有值设置为0,但在初始化时不会如问题所
a[100000][100000]
这样的大型2D数组。我不想迭代并给每个块赋值0
。如何在初始化时给出数组默认值0
?memset(a,0,sizeof a);一个通用选项:std::memcpy
(尽管要小心),您也可以执行A[10][10]={{0}
或a[10][10]={0}代码>或a[10][10]={}代码>@Caw:你测试过吗?这对我来说是新的,我希望你是对的。如果是这样,您应该将其作为答案添加到副本中。@Stefan是的,请参见6.7.8.21这会将所有值设置为0,但在初始化时不会如问题所述那样执行此操作。您只需在声明后立即调用它即可。或者在构造函数中,或者在初始化函数中。
int a[100000][100000];
std::fill((int*)a,(int*)a+sizeof(a)/sizeof(int),0);