<分区>
我需要一个二维数组,其中两个维度的长度在编译时都是未知的。我要[][]
访问权限。
关于这个已经有几个问题了,建议boost::multi_array
, std::vector<std::vector<type>>
,为 x 维度分配一个数组,为 y 维度分配 X 数组,依此类推。
要注意的是我无法控制数据,它已经作为单个连续数组存在(大小 x*y
)。我有一个指向它的指针和两个维度的大小,我或多或少地包装它以获得 [][]
访问权限。
我想避免创建一大堆对象(比如分配一个 std::vector
数组并将它们全部指向正确的对象),然后提升。
我考虑创建一个类来保存维度和指针,并重载 [][]
, 但这不起作用因为 [][]
是两个运算符,第二个 []
适用于不同的对象。
最终我正在寻找相当于使用 [][]
的东西作为某种 access(int x, int y)
的语法糖功能。这可能吗?