C ++ - 需要2-d数据结构的建议 - 1-D的大小不固定

时间:2015-05-22 21:18:06

标签: data-structures

我希望有一个二维数据结构来存储SAT公式。我想要的是类似于二维数组。但我希望做动态内存分配。

我正在考虑以下形式的向量数组: -

typedef vector<int> intVector;
intVector *clause;
clause = new intVector [numClause + 1] ;

因此clause[0]将是一个向量,clause[1]将是另一个向量,依此类推。并且每个向量可以具有不同的大小。但我不确定在内存分配方面这是否正确。

可以制作一组矢量,以便矢量具有不同的大小吗?内存管理有多糟糕?

感谢。

1 个答案:

答案 0 :(得分:1)

使用STL(动态内存分配)可以很好地进行内存管理,性能会下降,因为它是动态的,不会直接访问。

如果你完全绝望,你可以使用一对矢量,第一个作为静态数组,第二个是使用元素的数量。如果某个数组变大,您可以重新分配更多内存并增加计数。这将是一个很大的混乱,但可能会奏效。你将失去更少的内存并直接进入第二级阵列,但是它很丑陋。