静态数组的动态数组
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> >
解决方案一样高效。
我想要一个可以创建数量不确定的列表的程序。每个列表的大小是固定的,但我无法在编译时确定我需要多少个列表。
我知道我无法创建数组向量。我也明白我可以使用向量的向量,但我想知道这是否是最有效的方法,考虑到每次我需要一个新数组时我都需要保留固定数量的内存。
嗯,你可以使用数组向量,例如,
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> >
解决方案一样高效。