簡體   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