构建这样一个API将是一个"诱人的麻烦":实现无法有效地支持它,所以最好不要诱使人们使用不合适的数据 struct .
这与链表很少提供索引API的原因大致相同.这也是完全有序的,但是没有有效的方法来找到任意i
的第i
个元素.你必须从头开始,依次跟随i
个链接找到第i
个.
CPython dict的最终结果是一样的.它不使用链表,但最终是一样的:它在封面下使用平面向量,但基本上任何数量的向量条目都可以是"洞".在每次看一个入口之前,没有办法跳过洞.人们期望a[i]
次需要O(1)
(恒定)时间,而不是O(i)
次.