色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

數組中如何增加切片的容量

麥辣雞腿堡 ? 來源:盼盼編程 ? 作者:盼盼編程 ? 2023-10-09 10:01 ? 次閱讀

切片擴容

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

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

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

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

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

執行上面的代碼后的底層數據結構如下圖所示:

圖片

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

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

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

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

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

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

圖片

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

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

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

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40123
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    25939
  • 切片
    +關注

    關注

    1

    文章

    22

    瀏覽量

    8448
收藏 人收藏

    評論

    相關推薦

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

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

    labview如何創造一個不斷增加數組

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

    數組大小的增加 怎么拉動

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

    數組在內存的存儲解析

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

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

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

    SystemVerilog數組的賦值、索引和切片

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

    增加Arduino引腳的電流容量

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

    帶你了解SystemVerilog的關聯數組

    在SystemVerilog,我們知道可以使用動態數組實現數組元素個數的動態分配,即隨用隨分
    的頭像 發表于 06-09 09:46 ?7447次閱讀
    帶你了解SystemVerilog<b class='flag-5'>中</b>的關聯<b class='flag-5'>數組</b>

    Go切片的內部實現

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

    golang通過切片創建新的切片

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

    golan共享底層數組切片

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

    js判斷是否在數組存在

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

    labview怎么查數組相同元素的個數

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

    PHP數組的使用方法!

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

    數組和鏈表在內存的區別 數組和鏈表的優缺點

    數組和鏈表在內存的區別 數組和鏈表的優缺點? 數組和鏈表是常見的數據結構,用于組織和存儲數據。它們在內存的存儲方式以及優缺點方面存在一些
    的頭像 發表于 02-21 11:30 ?1023次閱讀
    主站蜘蛛池模板: 国产乱人伦AV麻豆网| 国产精品青青草原app大全| 久久精品黄色| 在线视频中文字幕| 快插我我好湿啊公交车上做| 一本之道高清www在线观看| 久欠热视频精品首页| 最新亚洲人成网站在线影院| 久久综合狠狠综合狠狠| 99日影院在线播放| 麒麟色欧美影院在线播放| 公和我做好爽添厨房中文字幕| 日韩一卡二卡三卡四卡免费观在线| 高h gl肉文| 亚洲一区精品在线| 女人的选择hd| 国产乱码精品一区二区三区四川| 亚洲青青草| 日本无码欧美激情在线视频| 国产网红主播精品福利大秀专区| 影音先锋男人资源813.| 日韩欧美精品有码在线播放| 国产专区_爽死777| 99久久免费看少妇高潮A片| 婷婷五月久久丁香国产综合| 久久免费资源福利资源站| 国模沟沟一区二区三区| 最近免费中文字幕MV在线视频3 | 青娱乐极品视觉盛宴av| 久久精品影院永久网址| 2019午夜75福利不卡片在线| 青娱乐极品视觉盛宴av| 理论片午午伦夜理片2021| 国产精品第1页| www.青青草| 99re精品视频在线播放视频| 亚洲熟妇无码乱子AV电影| 無码一区中文字幕少妇熟女网站| 男人扒开添女人屁股| 久久偷拍国2017的| 久草视频在线观看免费4|