欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang中set數(shù)據(jù)結(jié)構(gòu)的使用示例

 更新時間:2023年03月08日 14:59:30   作者:Pecto  
本文主要介紹了golang中set數(shù)據(jù)結(jié)構(gòu)的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

借助map實現(xiàn)

golang中沒有set數(shù)據(jù)結(jié)構(gòu),一般是通過map實現(xiàn),因為map的key值是不能重復(fù)的

示例

type empty struct {
}

// golang中的set數(shù)據(jù)類型
func MakeGolangSet(){
?? ?// 首先,空結(jié)構(gòu)體內(nèi)存消耗為0,其它數(shù)據(jù)結(jié)構(gòu)如布爾值等均存在內(nèi)存消耗
?? ?var e empty
?? ?fmt.Printf("empty struct memory is %v\n", unsafe.Sizeof(e))

?? ?fmt.Printf("bool memory is %v\n", unsafe.Sizeof(false))

?? ?set := make(map[string]struct{})
?? ?// ADD
?? ?set["foo"] = e
?? ?// DELETE
?? ?delete(set, "foo")
?? ?// set的規(guī)模
?? ?size := len(set)
?? ?fmt.Printf("set size is %v\n", size)
?? ?// 判斷是否存在
?? ?set["foo"] = e
?? ?value, exist := set["foo"]
?? ?fmt.Printf("value is %v\n, exist is %v\n", value, exist)
}

算法應(yīng)用

找兩個數(shù)組的交集

// 兩個數(shù)組的交集
func SectionWithTwoArray(num1, num2 []int) []int{
?? ?set := make(map[int]struct{}, 0)
?? ?var res []int
?? ?for _, v := range num1 {
?? ??? ?if _, ok := set[v]; !ok {
?? ??? ??? ?// 去重
?? ??? ??? ?set[v] = struct{}{}
?? ??? ?}
?? ?}
?? ?for _, v := range num2 {
?? ??? ?if _, ok := set[v]; ok {
?? ??? ??? ?res = append(res, v)
?? ??? ??? ?// 將此v刪掉,避免結(jié)果中出現(xiàn)重復(fù)數(shù)據(jù)
?? ??? ??? ?delete(set, v)
?? ??? ?}
?? ?}
?? ?return res
}

到此這篇關(guān)于golang中set數(shù)據(jù)結(jié)構(gòu)的使用示例的文章就介紹到這了,更多相關(guān)golang set數(shù)據(jù)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang grpc配置使用實戰(zhàn)

    golang grpc配置使用實戰(zhàn)

    本文主要介紹了golang grpc配置使用實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解Go語言中泛型的實現(xiàn)原理與使用

    詳解Go語言中泛型的實現(xiàn)原理與使用

    本文是對泛型的基本思想及其在?Go?中的實現(xiàn)的一個比較容易理解的介紹,同時也是對圍繞泛型的各種性能討論的簡單總結(jié),感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • goland把go項目打包進docker鏡像的全過程記錄

    goland把go項目打包進docker鏡像的全過程記錄

    golang編譯的應(yīng)用是不需要依賴其他運行環(huán)境的,下面這篇文章主要給大家介紹了關(guān)于goland把go項目打包進docker鏡像的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Go通用的?MapReduce?工具函數(shù)詳解

    Go通用的?MapReduce?工具函數(shù)詳解

    本文介紹了使用Go語言實現(xiàn)的MapReduce框架,特別是在AWSS3?SDK的MultiPartUpload功能中的應(yīng)用,包括并發(fā)上傳和錯誤處理策略,詳細解釋了如何通過并發(fā)goroutines提高上傳效率,并通過MapReduce模型優(yōu)化代碼結(jié)構(gòu)和處理流程,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Go語言切片前或中間插入項與內(nèi)置copy()函數(shù)詳解

    Go語言切片前或中間插入項與內(nèi)置copy()函數(shù)詳解

    這篇文章主要介紹了Go語言切片前或中間插入項與內(nèi)置copy()函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Golang動態(tài)數(shù)組的實現(xiàn)示例

    Golang動態(tài)數(shù)組的實現(xiàn)示例

    動態(tài)數(shù)組能自動調(diào)整大小,與靜態(tài)數(shù)組不同,其大小不固定,可根據(jù)需求變化,實現(xiàn)通常依賴于數(shù)據(jù)結(jié)構(gòu)如鏈表或數(shù)組加額外信息,本文就來介紹一下Golang動態(tài)數(shù)組的實現(xiàn)示例,感興趣的可以了解一下
    2024-10-10
  • Golang配置解析神器go?viper使用詳解

    Golang配置解析神器go?viper使用詳解

    viper是一個很完善的Go項目配置解決方案,很多著名的開源項目都在使用,比如Hugo,Docker都使用了該庫,使用viper可以讓我們專注于自己的項目代碼,而不用自己寫那些配置解析代碼,本文給大家介紹Golang配置解析神器go?viper使用,感興趣的朋友一起看看吧
    2022-05-05
  • GoLang中Module的基本使用方法

    GoLang中Module的基本使用方法

    Go module是從Go 1.11版本才引入的新功能,下面這篇文章主要給大家介紹了關(guān)于GoLang中Module的基本使用方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • golang并發(fā)下載多個文件的方法

    golang并發(fā)下載多個文件的方法

    今天小編就為大家分享一篇golang并發(fā)下載多個文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Bililive-go 實現(xiàn)直播自動監(jiān)控錄制功能

    Bililive-go 實現(xiàn)直播自動監(jiān)控錄制功能

    最近有直播錄制的需求,但是自己手動錄制太麻煩繁瑣,于是用了開源項目Bililive-go進行全自動監(jiān)控錄制,對Bililive-go 直播自動監(jiān)控錄制實現(xiàn)思路感興趣的朋友,一起看看吧
    2024-03-03

最新評論