[英]C++ Multidimensional array
我有一个3D阵列
double values[30][30][30];
我有一个循环,在其中给数组赋值; 就像是:
for(int z = 0;z<30; z++)
for (int y = 0;y<30; y++)
for (int x = 0;x<30; x++)
values[z][y][x] = intensity;
end
所以这就是我填充数组的方式。 问题是,除了强度之外,我还想创建一列以存储另一个变量。 例如,倒数第二行应类似于
values[z][y][x] = intensity | distance;
希望您能明白。 我的知识有限,我无法解决。 感谢您的建议。
这实际上取决于您的数据类型。 最简单的解决方案是使用结构:
struct data {
float intensity; // or replace 'float' with whatever datatype you need
float distance;
};
使用此结构而不是您现在用于数组的数据类型,然后再设置值:
values[z][y][x].intensity = intensity;
values[z][y][x].distance = distance;
如果仅使用较小的值(例如,仅将char用于每个值),则还可以使用按位运算符将所有内容存储为整数:
values[z][y][x] = intensity << 8 | distance;
intensity = values[z][y][x] >> 8;
distance = values[z][y][x] & 255;
但是我不建议您这样做,除非您真的很了解该值范围(例如,用于保存位图/纹理的东西)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.