给出一个矢量......
let v = vec![1, 2, 3, 4, 5];
是在呼叫v.len()
O(1)还是O(n)?
没有" The Book" (从我到目前为止所知)并且the docs提到.len()
是否是恒定时间,我在Stack Overflow或其他地方找不到任何东西。
我假设它是[]
,.push()
和.pop()
all are以来的O(1),但我想在此之前确定我用v.len()
丢弃了我的代码。
我知道我可以很容易地存储/引用len
的返回但在某些情况下 - 比如内部函数 - 我不想继续传递矢量和< / em>一个int。
感谢@Stargateur指出索引的O(1)与推/弹的摊销 O(1)不同