第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang中追加的大O

Golang中追加的大O

Go
UYOU 2021-06-14 09:02:09
Go 內(nèi)置append函數(shù)的復(fù)雜度是多少?字符串連接如何使用+?我想通過添加不包括該元素的兩個切片來從切片中刪除一個元素,例如。http://play.golang.org/p/RIR5fXq-Sfnums := []int{0, 1, 2, 3, 4, 5, 6, 7}fmt.Println(append(nums[:4], nums[5:]...))=> [0 1 2 3 5 6 7]http://golang.org/pkg/builtin/#append表示如果目的地有足夠的容量,那么該切片是resliced. 我希望“重新切片”是一個恒定的時間操作。我也希望同樣適用于使用+.
查看完整描述

1 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗 獲得超5個贊

這一切都取決于所使用的實際實現(xiàn),但我基于標(biāo)準(zhǔn) Go 和 gccgo。

切片

重新切片意味著更改結(jié)構(gòu)中的整數(shù)(切片是具有三個字段的結(jié)構(gòu):長度、容量和指向后備內(nèi)存的指針)。

如果切片沒有足夠的容量,則 append 將需要分配新內(nèi)存并復(fù)制舊內(nèi)存。對于 <1024 個元素的切片,它將使容量加倍,對于具有 >1024 個元素的切片,它將增加 1.25 倍。

字符串

由于字符串是不可變的,每個字符串連接+都會創(chuàng)建一個新字符串,這意味著復(fù)制舊字符串。因此,如果您在循環(huán)中執(zhí)行 N 次,您將分配 N 個字符串并復(fù)制 N 次左右的內(nèi)存。


查看完整回答
反對 回復(fù) 2021-06-21
  • 1 回答
  • 0 關(guān)注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號