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

How to initialize a 2D array with same values in c++

本文关键字:二维数组 c++ 初始化      更新时间:2023-10-16

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

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

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

使用fill_n可以编写:

std::fill_n(&table[0][0], sizeof(table) / sizeof(**table), 100);

使用std::vector:

std::vector<std::vector<int>> table(20, std::vector<int>(20, 100));

全部完成并在申报时"填写"。不需要更多的代码。