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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

去優(yōu)先級(jí)隊(duì)列 - 分配一個(gè)子片

去優(yōu)先級(jí)隊(duì)列 - 分配一個(gè)子片

Go
ibeautiful 2022-10-17 16:09:55
我在這里閱讀 Go 標(biāo)準(zhǔn)庫(kù)中的優(yōu)先級(jí)隊(duì)列,我正在查看這段代碼func (pq *PriorityQueue) Pop() interface{} {    old := *pq    n := len(old)    item := old[n-1]    old[n-1] = nil  // avoid memory leak    item.index = -1 // for safety    *pq = old[0 : n-1]    return item}我有點(diǎn)擔(dān)心這種從優(yōu)先級(jí)隊(duì)列中彈出元素的方法。我知道PriorityQueue在該示例中類(lèi)型是指針的切片,并且切片是引用類(lèi)型,因此old := *pq僅將引用分配給切片而不是實(shí)際上復(fù)制任何東西,但是這條線*pq = old[0 : n-1]有什么作用?它是創(chuàng)建另一個(gè)切片還是僅復(fù)制舊切片的引用,并將開(kāi)始-結(jié)束索引設(shè)置為0and n-1?我想將此類(lèi)用于可能包含大量項(xiàng)目的優(yōu)先級(jí)隊(duì)列,并且我想避免不必要的副本。
查看完整描述

1 回答

?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

old := *pq復(fù)制任何pq指向的東西。

復(fù)制切片會(huì)產(chǎn)生淺拷貝 - 副本由與原始切片相同的數(shù)組支持。

*pq = old[0 : n-1]創(chuàng)建一個(gè)短 1 個(gè)元素并由同一數(shù)組支持的新切片。

復(fù)制切片很便宜,復(fù)制后備數(shù)組很昂貴。

使用切片時(shí)必讀:Go Slices: usage and internals


查看完整回答
反對(duì) 回復(fù) 2022-10-17
  • 1 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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