【发布时间】:2020-06-05 14:14:38
【问题描述】:
我有以下结构。
typedef struct
{
uint32_t aa;
float32_t bb;
float32_t cc;
float32_t dd;
float32_t ee;
}struct_1;
typedef struct
{
uint32_t hh;
float32_t bb;
float32_t cc;
float32_t ii;
float32_t jj;
}struct_2;
我创建了结构数组,其中 struct_1 是动态分配的,而 struct_2 是静态的。
struct_1 *array1 = new struct_1[300];
struct_2 array2[300];
如何有效地将内容从array2复制到array1? 我不想在这里 memcpy,因为如果将来任何结构的类型发生变化,那么它会导致问题。
我可以在这种情况下使用 std::transform 或 std::copy 吗?请帮我语法。
【问题讨论】:
-
你可以写一个循环来复制成员,算法也不会做任何实质性的不同
-
另外,在 C++ 中,结构是类,这意味着它们是类型。不需要
typedef。在您的情况下,struct struct_1 { // };就足够了。