You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang中cap()函数的时间复杂度(大O表示法)是多少?

Go中cap()函数的时间复杂度是O(1)吗?

是的,cap()操作的时间复杂度为O(1),具体原因如下:

  • 对于切片(slice):Go的切片底层是一个包含三个字段的结构体:指向底层数组的指针、当前已使用的元素长度、底层数组的总容量。cap()只是直接读取这个结构体里的容量字段,无需任何遍历或计算,因此是常数时间操作。
  • 对于数组(array):数组的容量就是其本身的固定长度,这个值在编译阶段就已确定,cap()直接返回该常量值,同样是O(1)操作。

举个简单的示例:

package main

import "fmt"

func main() {
    // 创建长度为3、容量为5的切片
    s := make([]int, 3, 5)
    fmt.Println("len(s):", len(s)) // 输出3
    fmt.Println("cap(s):", cap(s)) // 输出5
}

内容的提问来源于stack exchange,提问作者Peter Petigru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:20:37