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

时间:2014-10-14 13:22:21

标签: c++ arrays stl initialization

我们可以使用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

3 个答案:

答案 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));

所有完成并在声明中“填写”。不需要更多代码。

相关问题