索引到 std::array 的 std::array

Indexing into std::array of std::array

我对 C++ 中数组的数组索引有些困惑:

我有:

array<array<int, SIZE_INNER>, SIZE_OUTER> arr;

当我建立索引时,我假设如下:

arr[outer_index][inner_index]

因此,outer_index 进入带有 SIZE_OUTER 的数组在前,然后是内部索引。

这是真的吗?

是的。可以这样想:arr[o] 访问 arr 的第 o 个元素。元素也是数组这一事实并没有太大变化。

后续调用 operator [] 访问先前调用返回的元素。

是的。让我们分解一下

array<int, SIZE_INNER>

将创建一个大小为 SIZE_INNER 的数组。现在你将该数组包装在

array<array<int, SIZE_INNER>, SIZE_OUTER> arr;

因此,内部数组是您的 "column",外部数组是您的 "row"。就像普通的二维数组一样。

使用 [] 运算符时,最右边的那个是最里面的数组。