我有一个包含 3 个字段的结构,两个int
s (我们称它们为A和B)和一个bool
( C )。
我想创建一种该结构的数组,并能够通过任何键(A 或 B)访问它,从而获得孔对象(带有 A、B 和 C)作为回报。如果这有什么不同的话,我不需要做类似“获取所有布尔为真的对象”之类的事情。
显然,两个键都是唯一的,而 bool 不能是唯一的,但为了清楚起见,我想我会提到它。
如果没有 A 或 B,那将是一个简单的std::map<int, bool>
.
我目前看到的唯一解决方案是制作一个包含 2 set
s 和 a的包装器vector
。有什么方法可以让我的生活更轻松吗?
注意:它最多包含一百个元组,所以性能应该不是问题。线性访问是可以接受的。
为了更清楚,这就是我想做的事情:
foobar<int, int, bool> array; // or something along those lines
array.add(1, 101, true);
array.add(2, 102, false);
array.getA(1); // returns first object
array.getA(2); // returns second object
array.getB(102); // returns second object again