gpt4 book ai didi

c++ - 如何获取二维原生数组的迭代器

转载 作者:行者123 更新时间:2023-11-28 06:41:14 25 4
gpt4 key购买 nike

一开始我在寻找一种方法将整个数组初始化为一个特定的值。虽然我知道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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com