静态数组的动态数组

Dynamic array of static arrays

我想要一个可以创建数量不确定的列表的程序。每个列表的大小是固定的,但我无法在编译时确定我需要多少个列表。

我知道我无法创建数组向量。我也明白我可以使用向量的向量,但我想知道这是否是最有效的方法,考虑到每次我需要一个新数组时我都需要保留固定数量的内存。

嗯,你可以使用数组向量,例如,

std::vector<std::array<T, N>> some_vec;

@Nim 是对的,但我还不能投票:p 他的解决方案也是 C++11.

另一种优于 std::vector<std::vector<T> > 的替代方法是使用一个维度为 X * Y 的向量。然后您可以使用 v[y * Y + x];

这适用于所有版本的 C++,应该与 std::vector<std::array<T, N> > 解决方案一样高效。