[英]Creating dynamic 2D array c++
据我所知,声明一个动态数组是:
int *array = new int[x];
我的问题是,如何声明一个动态二维数组?
例如:
int *array = new int[constant][dynamic];
从我发现的是行数不能是动态的。 有什么方法可以做到吗?
在这种情况下,我使用的一种简单技术是创建一个用于存储一维数组的结构,并创建一个包含这些一维 arrays 的数组。
struct BaseArray {
BaseArray() = default;
BaseArray(int count) : pArray(new int[count]) {}
~BaseArray() { delete[] pArray; }
int* pArray = nullptr;
};
int main()
{
BaseArray* pArray = new BaseArray[constant]{dynamic};
}
现在另一种简单的方法是使用std::vector
。 它看起来像这样,
std::vector<std::vector<int>> array(constant, std::vector<int>(dynamic));
我建议使用std::vector
,因为它的功能更完整,可以减轻你的负担。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.