所以我实现了一个存储指针的哈希表。我将其实现为STATIC_URL = '/static/'
STATIC_ROOT = '/var/location/to/your/static/files'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
vector
。沿着lists
的路线。我已经实现了一切,它工作正常。当我尝试重新散列哈希表时,我唯一的问题出现了。哈希表使用单独的链接来解决冲突,因此我的列表向量。
使用调试器,我发现我的reshsh循环挂在while循环上并导致无限循环。它不断从我的旧矢量的第一个索引读取。我是新手,我不确定重新检查这个表的正确方法。我试图研究并发现没有太多关于哈希表的实现的引用,更不用说重新哈希了。这是我的实施。
std::vector<std::list<Sequence*> > hashTable;
我觉得这是一个简单的错误,我只是没有看到它。或者我完全以错误的方式解决这个问题?
答案 0 :(得分:1)
您似乎无法更新iter
,这就是iter
永远不会成为hashtable[i].end()
的原因,除非它以该值开头。
答案 1 :(得分:0)
在你的while循环结束之前,你错过了一个 ++iter
,所以它会移动到列表中的下一个。
我通常会自己使用for循环,因为它让我不太可能忘记增加迭代器。类似的东西:
for(auto iter = hashTable[i].begin(); iter != hashTable[i].end(): ++iter)
{
// ... code using iterator ...
}