将整数数组初始化为给定值的最快方法是什么?
如果我有 char 数组,我可以使用 memset:
char a[N];
memset( a, value, N );
如果数组类型 != char 和值 != 0 或 -1,我无法执行 memset:
int a[N];
memset( a, value, N*sizeof(int) ); // INCORRECT!
所以我想知道是否有一种方法可以对其他数组类型进行类似的内存初始化。
最佳答案
使用std::fill
:
char a[N];
std::fill(std::begin(a), std::end(a), value);
注意 std::begin
和 std::end
是从 C++11 开始定义的。
如果您使用的是 C++03,那么这会起作用:
char a[N];
std::fill(a, a + N, value);
关于c++ - C++ 中最快的数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19590002/