Golang 有len(array)和cap(array)。前者返回数组/切片的长度(即数组元素的数量);据我了解,该功能是 O(1);这使它立即cap(array)返回底层数组的容量。然而,这个操作是 O(1) 吗?有人会认为数组的容量是数组具有的值,因此可以在 O(1) 时间内看到,但我不能确定
2 回答

慕桂英3389331
TA贡献2036条经验 获得超8个赞
切片类型的内部定义如:
type _slice struct {
// referencing underlying elements
elements unsafe.Pointer
// number of elements and capacity
len, cap int
}
对于slice,就是O(1)getlen或者capfield。
len()和cap()ofarray在程序编译时计算。
对于array,它也是O(1)获取len或cap字段。
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消