繁体   English   中英

如何创建动态大小的链接列表数组?

[英]How can I create a dynamically sized array of linked lists?

我需要在运行时为哈希表分配创建一个链接列表数组。 我们提供的示例代码仅允许创建静态大小的数组,而我无法弄清楚如何对其进行修改以使其与变量一起使用,因为我尝试的所有操作均会导致错误。

样例代码:

typedef std::list<int> INT_LIST;
typedef INT_LIST* INT_LIST_POINTER;
int size = 13;
INT_LIST_POINTER myArray[size];
INT_LIST_POINTER tmpPtr;
// initialize the array to point to empty lists
for (int i=0; i<size; i++){
tmpPtr = new INT_LIST;
myArray[i] = tmpPtr;
}

我当前的无效代码:

typedef std::list<int> INT_LIST;
typedef INT_LIST* INT_LIST_POINTER;
INT_LIST_POINTER myArray = new INT_LIST[p];
INT_LIST_POINTER tmpPtr;
for (int i=0; i<n; i++){
INT_LIST* temp = new INT_LIST;
myArray[i] = temp;
}

主要问题似乎在于

myArray[i] =  temp;

这说明没有什么与这些操作数匹配。

如果这是C ++,为什么不使用std

std::vector<std::list<MyClass> > x;

您分配大小为p的数组:

INT_LIST_POINTER myArray = new INT_LIST[p];

然后继续初始化n元素:

for (int i=0; i<n; i++){

除非pn是相同的东西,否则这看起来不正确。

PS完成后,请不要忘记delete[] myArray

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM