我需要在运行时创建一个链表数组以进行哈希表分配。我们提供的示例代码仅允许创建静态大小的数组,并且我无法弄清楚如何修改它以使用变量,因为我尝试的所有操作都导致了错误。
示例代码:
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;
关于c++ - 如何创建动态大小的链表数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9496012/