1

在 c++ 中,我们通常使用memset将所有元素设置为零,例如:

int a[5][5];
memset(a,0,sizeof(a));

如果我想将所有 int 元素设置为1怎么办?

memset(a, 1, sizeof(a));

不起作用,因为我不能只将所有字节设置为1

我想知道是否有类似的功能memset来设置所有elements不只是字节)到一个特定的value

4

1 回答 1

1

Usingstd::fill会起作用,但你必须求助于 using 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);
于 2013-06-13T04:48:46.757 回答