如何创建对数组的引用和boost :: array(或不必要的想法)?
|
我有
int valA[3] = {290, 340, 390};
int valB[3] = {160, 200, 240};
boost::array<myStruct, 4> myStructA = {{{250,8}, {170,8}, {70,8}, {30,3}}};
boost::array<myStruct, 4> myStructB = {{{50,4}, {110,6}, {220,6}, {270,8}}};
并且在执行以下操作时我想避免复制和粘贴:
if(useA) {
// do a lot with valA and myStructA
}
else {
// do a lot with valB and myStructB
}
因此,我们的想法是拥有类似的内容(内部警告,无法正常工作的代码):
if(useA) {
int &val[3] = valA;
boost::array &myStruct<myStruct, 4> = myStructA;
}
else {
int &val[3] = valB;
boost::array &myStruct<myStruct, 4> = myStructB;
}
// do a lot with val and myStruct
有什么办法吗?还是一般方法不好并且有更清洁的解决方案?
我知道规则“没有引用数组”,但是这应该是数组的引用...或者最后是一样的吗?
谢谢你的帮助!
没有找到相关结果
已邀请:
3 个回复
寒健
(您需要
来引用
而不是
)。
(模板参数是类型的一部分,而不是变量名称)。 另外,它还必须是ѭ8或等效值,因为在您的示例代码中,您打算在其范围之外使用ѭ5。
联海
对于像ѭ11这样的UDT,它只是
枫湃揩乾纲