c++ - 具有不同大小的二维结构数组成员变量

标签 c++ arrays struct

所以我得到了一个类,我将其泛化为一个基类。其中一个成员变量是结构的二维数组。

struct SomeType
{
...
}

然后在类的标题中:

SomeType member_variable_ [SIZE_ONE][SIZE_TWO];

但是,在我的情况下,SIZE_TWO 需要在类初始化时设置,因为它会根据使用它的不同而有所不同。拥有一个大小尚未设置为成员变量的二维结构数组的最佳方法是什么?

最佳答案

解决它的最简单方法是根本不使用 C 风格的数组,而是使用 std::vector .或者可能是 std::array vector 数:

std::array<std::vector<SomeType>, SIZE_ONE> member_variable_;

现在您可以轻松地根据需要插入尽可能多(或尽可能少)的 SomeType 对象,并且仍然使用数组索引语法:

member_variable_[some_index][some_other_index]

要在运行时为“第二个”维度设置固定大小,您可以在构造函数中执行如下操作:

for (auto& v : member_variable_)
    v = std::vector<SomeType>(the_runtime_size);

关于c++ - 具有不同大小的二维结构数组成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24418526/

相关文章:

c - 在 C 中,使用指向结构的指针来调用指向结构内部的函数会导致段错误

c# - 如何在 C# 中将结构体数组元素提取到变量中而不进行复制?

javascript - 如何在 map Javascript 中传递额外参数给函数

c++ - 我可以沙箱使用静态数据的命名空间吗?

c++ - 线程池应该如何在C中实现?

javascript - 制作 3D 阵列的 2D 横截面切片

c - 如何从位于头文件中的结构访问变量?

c - 为什么我在这里收到不兼容的指针类型警告?

C++ 跨平台开发(Windows 和 Mac OS)

c++ - get 方法上的代码崩溃,C++