具有负索引的3d数组-c++
3d array with negative index - c++
我需要一个支持负索引的三维数组。类似于boost::multi_array,我可以为每个维度指定边界,即:
int xMin = -5; int xMax = 7;
int yMin = 3; int yMax = 10;
int zMin = -8; int zMax = -2;
SuperArray<float> ar;
ar.setBounds(xMin, xMax, yMin, yMax, zMin, zMax);
ar[-3][5][-5] = 1.0f;
基本上,它在3D中索引体素子空间:)有什么准备好了吗?还是我自己来创造?谢谢
为什么不直接翻译一下呢?
假设阵列大小为:
d1 = 100
d2 = 100
d3 = 100
[d1][d2][d3]
// where index 0 = -50 and index 99 = 50
//Pseudo code
// x = -1; y = 2; z = 2;
value = array[d1/2+x][d2/2 + y][d3/2 +z];
将每个维度的大小设置为Max-Min
。然后,当您想要访问数组元素时,将-Min
添加到每个索引中。所以对于你的尺寸,你应该声明:
float ar[12][7][6];
然后要访问您想要的元素,您需要:
ar[-3-(-5)][5-3][-5-(-8)] = 1.0f;
您应该能够编写一个隐藏所有这些转换的类(这就是Boost库正在做的)。
相关文章:
- 如何计算 3d 数组中的索引值在内存中的位置?如何计算字符**中的索引值在内存中的位置?
- 我是 c++ 的新手,有没有一种算法可以找到 3d 数组中最接近的 0 的距离?
- 如何用零填充 3D 数组?
- 将长度可变的 C99 静态 3D 数组传递给函数
- C :将矢量重新为3D数组
- 将动态 3D 数组发送到 C++ 中的函数
- C++ 3D 数组到 1D 会导致堆缓冲区溢出
- 初始化const 3D数组成员变量
- 处理3D数组的边缘和角案例的方法
- 将2D数组的实例分配给3D数组中的索引
- 使用 vector 在 c++ 中声明 3D 数组结构
- 为什么C CHAR数据类型3D数组通过参数第一个括号为空白
- 可以使用 std::copy 将 3D 数组复制到矢量
- 我的重载 [] 运算符不适用于伪 3D 数组
- 从 3D 数组转换为 1D 数组失败
- 如何将3D .OBJ对象表示为3D数组
- 如何在C++中定义每个维度具有不同类型的 3D 数组
- CPP 3D 动态创建由单个内存块组成的 3D 数组
- 视觉读取列文本数据并在C++中放入 3D 数组
- 将 3D 数组的索引传递给函数