所以...我已经实现了exendible哈希的一个版本...我现在的问题是析构函数。可扩展哈希 - 析构函数C++
我在Hash类中使用了一个指向数组Bucket的指针数组。问题是在同一个存储桶中可能有多个指针。
在Hash类的析构函数中,我必须删除每个存储桶然后删除数组,但我必须小心不要删除同一个存储桶两次(我认为这会导致错误)。为了做到这一点,我使用了一个bool向量来记忆存储桶是否已经被删除。
我现在的问题是:有没有办法知道一个存储桶是否已经被删除而没有使用更多的存储器(布尔向量)? LE:我使用nullptr解决了析构问题(似乎现在正在工作),但是......另一个问题是:我怎样才能精确地遍历每个桶(例如,查找最小和最大元素) 。我不能使用nullptr这段时间(指针需要保持他们在哪里 - 在桶)
也许考虑使用'std :: shared_ptr'?它使用每个objet的2-3个字的内存和共享状态,但这对于简单性和安全性来说往往是一个很好的折衷。 – tux3
在正常操作期间遇到同样的问题。所以,只需'shared_ptr'并完成它。 –
感谢您的快速回复...嗯,这是一个单一的项目,我真的不允许使用std :: shared_ptr ... –