所以...我已經實現了exendible哈希的一個版本...我現在的問題是析構函數。可擴展哈希 - 析構函數C++
我在Hash類中使用了一個指向數組Bucket的指針數組。問題是在同一個存儲桶中可能有多個指針。
在Hash類的析構函數中,我必須刪除每個存儲桶然後刪除數組,但我必須小心不要刪除同一個存儲桶兩次(我認爲這會導致錯誤)。爲了做到這一點,我使用了一個bool向量來記憶存儲桶是否已經被刪除。
我現在的問題是:有沒有辦法知道一個存儲桶是否已經被刪除而沒有使用更多的存儲器(布爾向量)? LE:我使用nullptr解決了析構問題(似乎現在正在工作),但是......另一個問題是:我怎樣才能精確地遍歷每個桶(例如,查找最小和最大元素) 。我不能使用nullptr這段時間(指針需要保持他們在哪裏 - 在桶)
也許考慮使用'std :: shared_ptr'?它使用每個objet的2-3個字的內存和共享狀態,但這對於簡單性和安全性來說往往是一個很好的折衷。 – tux3
在正常操作期間遇到同樣的問題。所以,只需'shared_ptr'並完成它。 –
感謝您的快速回復...嗯,這是一個單一的項目,我真的不允許使用std :: shared_ptr ... –