一开始我正在寻找一种方法将整个数组初始化为一个特定的值。
虽然我知道memset()
中的<cstring>
可以做到这一点,但我希望通过更加C ++的方式来实现。
然后我才知道std::fill()
可以用来处理单维数组
const int SIZE = 10;
int arr[SIZE];
std::fill(std::begin(arr), std::end(arr), 1);
但是当使用2d或多维数组时,这不起作用。 如何获得多维数组的迭代器?
提前致谢。
答案 0 :(得分:1)
2D数组在内存中是连续的,所以你可以这样做
int arr[ROWS][COLS];
const size_t total_size = ROWS*COLS;
std::fill(&a[0][0], &a[0][0]+ total_size, 1);
其中total_size
是元素总数。