在c++中,我们通常使用memset
将所有元素设置为零,如:
int a[5][5];
memset(a,0,sizeof(a));
如果我想将所有 int 元素设置为 1 怎么办?
memset(a, 1, sizeof(a));
不起作用,因为我不能将所有字节都设置为 1。
我想知道是否有类似memset
的函数来将所有元素
(NOT JUST BYTES) 设置为特定的值
.
最佳答案
使用 std::fill
会工作,但你必须求助于使用 reinterpret_cast<>
,这通常被认为是错误的形式:
#include <algorithm>
int a[5][5];
std::fill(reinterpret_cast<int*>(a),
reinterpret_cast<int*>(a)+(5*5),
1);
或者,您可以获取第一个元素的地址,这同样很笨重:
std::fill(&a[0][0],&a[0][0]+(5*5),1);
关于c++ - 通过 memset 函数将 2D int 数组元素设置为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079379/