【发布时间】:2010-11-08 19:42:31
【问题描述】:
我们有这个例子:
struct X {
int e0 : 6;
int e1 : 6;
int e2 : 6;
...
int e10 : 6;
};
struct X c;
如何“自动”访问成员,例如:
c.e{0-10} ?
说如果我想读 c.e0,然后 c.e1 ...
如果我的结构有 1000 个元素,我认为我不应该写这么多代码,对吧?
你能帮我一个解决方法,一个想法吗?
我提到我已经阅读了与此问题相关的其他帖子,但我没有找到解决方案。
非常感谢!
【问题讨论】:
-
在这里使用结构的商业案例是什么?任何其他数据元素也可以使用吗?
-
你真的需要 6 位 int 成员吗?这会影响问题的答案。
-
很抱歉通知您,但如果您的
struct would have 1000 elements比您的设计严重损坏... -
结构体的长度必须是三个值,超过四个可以使用这些结构体的数组。
-
谢谢大家的回答!这是一个应该模拟 SET Union 和 Intersection 的问题。我的想法是我应该使用这样的结构。假设 e0 中我应该拥有的最大数字是 32。这就是为什么我的位字段为 6。问题中未指定的是 SET 将具有多少个元素。即使我们有一个 SET A 和另一个,B 和 A 有 5 个元素,B 有 3 个,它仍然不方便(因为我必须写一些代码行)。
标签: c++ bit-fields