91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數(shù)組中如何增加切片的容量

麥辣雞腿堡 ? 來源:盼盼編程 ? 作者:盼盼編程 ? 2023-10-09 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

切片擴容

相對于數(shù)組而言,使用切片的一個好處是:可以按需增加切片的容量。

Golang 內置的 append() 函數(shù)會處理增加長度時的所有操作細節(jié)。要使用 append() 函數(shù),需要一個被操作的切片和一個要追加的值,當 append() 函數(shù)返回時,會返回一個包含修改結果的新切片。

函數(shù) append() 總是會增加新切片的長度,而容量有可能會改變,也可能不會改變,這取決于被操作的切片的可用容量。

num := []int{1, 2, 3, 4, 5}
// 創(chuàng)建新的切片,其長度為 2 個元素,容量為 4 個元素

myNum := num[1:3]
// 使用原有的容量來分配一個新元素
// 將新元素賦值為 60
myNum = append(myNum, 60)

執(zhí)行上面的代碼后的底層數(shù)據(jù)結構如下圖所示:

圖片

此時因為 myNum 在底層數(shù)組里還有額外的容量可用,append() 函數(shù)將可用的元素合并入切片的長度,并對其進行賦值。

由于和原始的切片共享同一個底層數(shù)組,myNum 中索引為 3 的元素的值也被改動了。

如果切片的底層數(shù)組沒有足夠的可用容量,append() 函數(shù)會創(chuàng)建一個新的底層數(shù)組,將被引用的現(xiàn)有的值復制到新數(shù)組里,再追加新的值,此時 append 操作同時增加切片的長度和容量:

// 創(chuàng)建一個長度和容量都是 4 的整型切片
num := []int{1, 2, 3, 4}

// 向切片追加一個新元素
// 將新元素賦值為 5
myNum := append(num, 5)

當這個 append 操作完成后,newSlice 擁有一個全新的底層數(shù)組,這個數(shù)組的容量是原來的兩倍:

圖片

函數(shù) append() 會智能地處理底層數(shù)組的容量增長。

在切片的容量小于 1000 個元素時,總是會成倍地增加容量。一旦元素個數(shù)超過 1000,容量的增長因子會設為 1.25,也就是會每次增加 25%的容量(隨著語言的演化,這種增長算法可能會有所改變)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67538
  • 數(shù)據(jù)結構

    關注

    3

    文章

    573

    瀏覽量

    41601
  • 數(shù)組
    +關注

    關注

    1

    文章

    420

    瀏覽量

    27371
  • 切片
    +關注

    關注

    1

    文章

    23

    瀏覽量

    8625
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    關于大容量數(shù)組某個元素的定位問題

    請教下,一個采集卡以400k的速率采集數(shù)據(jù)。在采集過程數(shù)組如何獲得第600k、第800k個點呢,我嘗試用索引數(shù)組配合case結構,但發(fā)現(xiàn)索引位置變化太慢請問大家有辦法嗎?
    發(fā)表于 06-17 23:49

    labview如何創(chuàng)造一個不斷增加數(shù)組

    while循環(huán)設置為“真時停止”,為什么我按停止后,數(shù)組才會不斷增加而,而打false則數(shù)組增加?不是應該繼續(xù)的時候才執(zhí)行while的程
    發(fā)表于 01-17 16:56

    數(shù)組大小的增加 怎么拉動

    如圖 有時候數(shù)組增加了一個之后 在怎么拉動數(shù)組的控件都只是改變控件外形大小,那個增加輸入的小框框就是調不出來
    發(fā)表于 07-11 15:58

    數(shù)組在內存的存儲解析

    數(shù)組容量是固定的,只能一次獲取或設置一個元素的值,而ArrayList或List的容量可根據(jù)需要自動擴充、修改、刪除或插入數(shù)據(jù)。數(shù)組可以具有多個維度,而 ArrayList或 Lis
    發(fā)表于 01-14 22:22 ?7767次閱讀

    java數(shù)組的三種定義方式_java數(shù)組的定義及使用方法(推薦)

    java,數(shù)組是一種很常用的工具,本文將介紹來java數(shù)組的三種定義方式以及java數(shù)組
    發(fā)表于 01-29 09:53 ?3.3w次閱讀

    SystemVerilog數(shù)組的賦值、索引和切片

    數(shù)組可以作為參數(shù)傳遞給子程序,當數(shù)組作為值傳遞給子程序時,會將這個數(shù)組復制一份傳遞給子程序。
    的頭像 發(fā)表于 10-20 10:13 ?6514次閱讀

    增加Arduino引腳的電流容量

    電子發(fā)燒友網(wǎng)站提供《增加Arduino引腳的電流容量.zip》資料免費下載
    發(fā)表于 12-16 10:16 ?0次下載
    <b class='flag-5'>增加</b>Arduino引腳的電流<b class='flag-5'>容量</b>

    帶你了解SystemVerilog的關聯(lián)數(shù)組

    在SystemVerilog,我們知道可以使用動態(tài)數(shù)組實現(xiàn)數(shù)組元素個數(shù)的動態(tài)分配,即隨用隨分
    的頭像 發(fā)表于 06-09 09:46 ?9293次閱讀
    帶你了解SystemVerilog<b class='flag-5'>中</b>的關聯(lián)<b class='flag-5'>數(shù)組</b>

    Go切片的內部實現(xiàn)

    切片 Go中提供了一種靈活,功能強悍的內置類型Slices切片(“動態(tài)數(shù)組"),與數(shù)組相比切片的長度是不固定的,可以追加元素,在追加時可能使
    的頭像 發(fā)表于 10-09 09:43 ?1232次閱讀
    Go<b class='flag-5'>切片</b>的內部實現(xiàn)

    golang通過切片創(chuàng)建新的切片

    slice 的第幾個元素開始切,j 控制切片的長度(j-i),k 控制切片容量(k-i),如果沒有給定 k,則表示切到底層數(shù)組的最尾部。下面是幾種常見的簡寫形式: slice [i
    的頭像 發(fā)表于 10-09 09:48 ?1325次閱讀
    golang通過<b class='flag-5'>切片</b>創(chuàng)建新的<b class='flag-5'>切片</b>

    golan共享底層數(shù)組切片

    nil 和空切片 有時,程序可能需要聲明一個值為 nil 的切片(也稱nil切片)。只要在聲明時不做任何初始化,就會創(chuàng)建一個 nil 切片。 var num [] int 在 Gola
    的頭像 發(fā)表于 10-09 09:56 ?1227次閱讀
    golan共享底層<b class='flag-5'>數(shù)組</b>的<b class='flag-5'>切片</b>

    js判斷是否在數(shù)組存在

    JavaScript 是一種用于客戶端和服務器端編程的腳本語言。它提供了許多內置函數(shù)和方法,以便進行數(shù)組操作。 在本文中,我們將學習如何使用 JavaScript 來判斷一個元素是否存在于數(shù)組
    的頭像 發(fā)表于 11-30 16:23 ?2103次閱讀

    labview怎么查數(shù)組相同元素的個數(shù)

    要查找LabVIEW數(shù)組相同元素的個數(shù),可以使用以下步驟: 創(chuàng)建一個包含要查找的數(shù)值的數(shù)組。這可以通過手動輸入數(shù)組元素或從文件/其他數(shù)據(jù)
    的頭像 發(fā)表于 12-28 16:42 ?6356次閱讀

    PHP數(shù)組的使用方法!

    PHP數(shù)組的使用方法! PHP是一種廣泛使用的網(wǎng)絡編程語言,它的數(shù)組功能非常強大且靈活。數(shù)組是一種數(shù)據(jù)結構,它允許我們在單個變量存儲多個
    的頭像 發(fā)表于 01-12 15:11 ?1296次閱讀

    數(shù)組和鏈表在內存的區(qū)別 數(shù)組和鏈表的優(yōu)缺點

    數(shù)組和鏈表在內存的區(qū)別 數(shù)組和鏈表的優(yōu)缺點? 數(shù)組和鏈表是常見的數(shù)據(jù)結構,用于組織和存儲數(shù)據(jù)。它們在內存的存儲方式以及優(yōu)缺點方面存在一些
    的頭像 發(fā)表于 02-21 11:30 ?2114次閱讀