我知道这个问题,但我的有点不同。
为什么rehash具有二次复杂度,但operator [](可以调用rehash) 在最坏情况下具有线性复杂度?
抱歉,但我没有 10 分来添加图像,所以如果当你看到这个问题时一切都已经解决了,这是我在 cppreference 中看到的:
rehash复杂:
平均情况下与容器的大小呈线性关系,最坏情况下呈二次方关系。
operator[]复杂:
平均情况:恒定,最坏情况:大小呈线性。
我知道为什么 rehash 的复杂度会是二次方。然而,使其成为线性并不困难。因此,任一陈述都可以为真,但不能同时为真(仅当意味着不同的大小时,但我不明白什么可以被视为大小,除了元素的数量)。