Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 c++ 中,我们通常使用memset将所有元素设置为零,例如:
memset
int a[5][5]; memset(a,0,sizeof(a));
如果我想将所有 int 元素设置为1怎么办?
memset(a, 1, sizeof(a));
不起作用,因为我不能只将所有字节设置为1。
我想知道是否有类似的功能memset来设置所有elements(不只是字节)到一个特定的value。
elements
value
Usingstd::fill会起作用,但你必须求助于 using reinterpret_cast<>,这通常被认为是不好的形式:
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);