如何创建一个动态大小的链表数组

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

本文关键字:链表 数组 动态 何创建 创建 一个      更新时间:2023-10-16

我需要在运行时为哈希表赋值创建一个链表数组。我们得到的示例代码只允许创建静态大小的数组,我不知道如何修改它以使用变量,因为我所尝试的一切都会导致错误。

样本代码:

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];

然后继续初始化CCD_ 3元素:

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

除非pn是同一个东西,否则这看起来不对。

附言:完成delete[] myArray后不要忘记它。