如何在c ++中初始化具有相同值的2D数组

Dev*_*wal 3 c++ arrays stl initialization

我们可以使用fill_n函数用值初始化1D数组.

int table[20];
fill_n(table, 20, 100);
Run Code Online (Sandbox Code Playgroud)

但是我们如何用相同的值初始化2D数组.

int table[20][20];
fill_n(table, sizeof(table), 100); //this gives error
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 6

您可以使用指向第一个元素的指针和指向最后一个元素的指针:

int table[20][20];
int* begin = &table[0][0];
size_t size = sizeof(table) / sizeof(table[0][0]);
fill(begin, begin + size, 100);
Run Code Online (Sandbox Code Playgroud)