我们可以使用fill_n函数初始化带有值的1D数组。
int table[20];
fill_n(table, 20, 100);
但是我们如何用相同的值初始化2D数组。
int table[20][20];
fill_n(table, sizeof(table), 100); //this gives error
答案 0 :(得分:6)
您可以使用指向第一个元素的指针和指向最后一个元素的指针:
int table[20][20];
int* begin = &table[0][0];
size_t size = sizeof(table) / sizeof(table[0][0]);
fill(begin, begin + size, 100);
答案 1 :(得分:2)
使用fill_n,您可以写:
std::fill_n(&table[0][0], sizeof(table) / sizeof(**table), 100);
答案 2 :(得分:-1)
使用std::vector
:
std::vector<std::vector<int>> table(20, std::vector<int>(20, 100));
所有完成并在声明中“填写”。不需要更多代码。