一开始我在寻找一种方法将整个数组初始化为一个特定的值。
虽然我知道memset()
在<cstring>
可以做到这一点,我想通过更 C++ 的方式来实现。
然后我开始了解std::fill()
可以是一种处理单维数组的方法
const int SIZE = 10;
int arr[SIZE];
std::fill(std::begin(arr), std::end(arr), 1);
但这在使用二维或多维数组时不起作用。 如何获取多维数组的迭代器?
提前致谢。
最佳答案
二维数组在内存中是连续的,所以你可以这样做
int arr[ROWS][COLS];
const size_t total_size = ROWS*COLS;
std::fill(&a[0][0], &a[0][0]+ total_size, 1);
其中 total_size
是元素的总数。
关于c++ - 如何获取二维原生数组的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915394/