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 關注
- 106 瀏覽
添加回答
舉報
0/150
提交
取消