考虑以下内容(不是任何特定语言):
for (i=0; i<list.length(); i++) { ... }
有些人喜欢将其重写为:
int len = list.length()
for (i=0; i<len; i++) { ... }
list.length()
如果获取长度不是 O(1),这将是有意义的。但我看不出有任何理由会出现这种情况。无论数据类型如何,在某处添加一个长度字段并在大小发生变化时更新它应该是微不足道的。
是否存在获取或更新长度不是 O(1) 的常见数据类型?或者还有其他原因为什么有人想要这样做?