QHash<int,std::string> hashTable; ... for (auto it = hashTable.begin(); it != hashTable.end(); ++it) std::cout << it.value() << std::endl;
这是O(hashTable.size())操作吗?
我试图挖掘源代码,但找不到正确的定义.
当它们不存在时,唯一的方法是迭代散列表的所有桶,同时也迭代每个桶中的元素.
此操作的速度取决于表的填充状态.当它非常低的时候,需要重复大量空桶,浪费时间.当表填满时,每个桶中有一个或多个元素,它几乎像迭代一个链表.在一个完美的哈希图上,每个bucket只包含一个元素,就像迭代一个数组.