随着编程变得越来越复杂,以及需要在结构数据上执行操作的需求变得明显。是否有一种将结构体类型转换为其成员数组的转换方法,使得:
或者更好的方式是,动态地如下所示:
struct FooDesc Foo{
int num_Foo;
int num_Bar;
int GreenFoo;
};
可以用以下方式表示:
int Bar[2];
或者更好的方式是,动态地如下所示:
vector<int> Bar;
目标是将数据结构转换或重新表示为可迭代的形式,而不过度使用赋值运算符。
int Bar[2]
- 不可以。int Bar[3]
- 可以。 - barak manosvector<int>
时,您需要将其复制到向量中进行“序列化”操作,然后从向量中复制回结构体进行“正常”操作。您可以将结构体的地址强制转换为int*
,然后使用该指针执行您的“序列化”操作,这将直接影响结构体。顺便问一下,“没有过多使用赋值运算符”是什么意思?无论您如何表示此结构,都必须使用相同数量的赋值。说实话,您在这里的目的非常模糊。 - barak manosstd::tuple
的应用,它与可变参数模板结合,用于编译时动态操作。您可能需要添加一个函数将相关结构体转换为std::tuple
。 - Jason