Golang 有len(array)和cap(array). 前者回傳陣列/切片的長度(即陣列具有的元素數量);據我了解,該功能是 O(1) 但是,我不知道后者的效率;也是 O(1) 嗎?
uj5u.com熱心網友回復:
對于切片,兩者len和都cap簡單地從切片頭回傳相應的值,因此它們是恒定時間操作。
對于陣列,len和cap都是編譯時常量。
uj5u.com熱心網友回復:
切片型別的內部定義,例如:
type _slice struct {
// referencing underlying elements
elements unsafe.Pointer
// number of elements and capacity
len, cap int
}
對于slice, 是O(1)獲取len或cap欄位。
len()和cap()ofarray在程式編譯時進行評估。
對于array,它也是O(1)獲取len或cap欄位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/508644.html
標籤:数组去大哥
