我想用相同的值填充 MyStruct 数组。如何以最快和最简单的方式完成?我正在使用相当低级的方法,例如 memset
或 memcpy
。
编辑: std::fill_n
确实符合要求并且工作正常。但它是 C++ 方式。 如何在纯 C 中完成?
struct MyStruct
{
int a;
int b;
};
void foo()
{
MyStruct abc;
abc.a = 123;
abc.b = 321;
MyStruct arr[100];
// fill 100 MyStruct's with copy of abc
std::fill_n(arr, 100, abc); // working C++ way
// or maybe loop of memcpy? But is it efficient?
for (int i = 0; i < 100; i++)
memcpy(arr[i],abc,sizeof(MyStruct));
}
原文由 Greg Witczak 发布,翻译遵循 CC BY-SA 4.0 许可协议
请注意正确键入类型名称(区分大小写),并且不要忘记
struct
定义后的分号,除此之外,您的程序应该可以毫无问题地编译:输出
321
。“如何以最快最简单的方式完成?”
最简单的方法可能是使用
std::vector
及其适当的构造函数: