我有一个 unordered_map,键为 ULONG。
我知道可以有大量的条目,但不确定有多少。所以不能事先指定桶数。我期望插入的时间复杂度为 O(1),因为键是唯一的。但似乎插入需要很长时间。
我读过,如果有很多重新散列,这可能是可能的,因为桶计数未指定,这需要不确定的时间。
我能做些什么来提高这里插入的时间复杂度。或者我错过了什么?
最佳答案
一些可能有帮助的事情:
- 您实际上可以计算何时进行重新散列,并找出问题所在。来自 cplusplus.com :
“如果插入操作后新容器的大小增加到超过其容量阈值(计算为容器的 bucket_count 乘以其 max_load_factor),则强制重新散列。”
- 尝试隔离插入操作并查看它是否确实像看起来那样花费时间,否则编写一个简单的计时器并将其放置在代码中有用的位置以查看时间被吃掉的地方
关于c++ - 插入在 Unordered_map (C++) 中花费很长时间,以 ULONG 为键且桶数未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214860/