gost v0.7.2
https://github.com/myyrakle/gost/releases/tag/v0.7.2
https://pkg.go.dev/github.com/myyrakle/gost
์ด๋ฒ์๋ ์ข ๋ง์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค.
BTreeMap[K,V]
์๋ฃ๊ตฌ์กฐ BTreeMap์ด ์ถ๊ฐ๋์๋ค.
B-Tree ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋งต์ด๊ณ , ์ฐจ์๋ Rust๋ฅผ ๊ณ์นํด์ 12๋ค. ์ด๋ จํ ๋ง์ถฐ์ ์ ํ๊ฑฐ๊ฒ ์ง...
package main
import (
"fmt"
gost "github.com/myyrakle/gost"
)
func main() {
tree := gost.BTreeMap[gost.String, gost.I32]{}
tree.Insert(gost.String("asdf"), gost.I32(3))
tree.Insert(gost.String("qwer"), gost.I32(4))
tree.Insert(gost.String("zxcv"), gost.I32(5))
tree.Insert(gost.String("uiop"), gost.I32(6))
tree.Insert(gost.String("hjkl"), gost.I32(7))
tree.Insert(gost.String("bnm,"), gost.I32(8))
tree.Insert(gost.String("yuiop"), gost.I32(9))
tree.Insert(gost.String("asdfg"), gost.I32(10))
tree.Insert(gost.String("qwert"), gost.I32(11))
tree.Insert(gost.String("zxcvb"), gost.I32(12))
tree.Insert(gost.String("uiop["), gost.I32(13))
tree.Insert(gost.String("hjkl;"), gost.I32(14))
tree.Insert(gost.String("bnm,."), gost.I32(15))
tree.Insert(gost.String("yuiop["), gost.I32(16))
tree.Insert(gost.String("asdfgh"), gost.I32(17))
tree.Insert(gost.String("asdfgh"), gost.I32(99999))
fmt.Println(tree.ContainsKey(gost.String("asdf")))
fmt.Println(tree.ContainsKey(gost.String("not_found")))
tree.Remove(gost.String("asdf"))
fmt.Println(tree.ContainsKey(gost.String("asdf")))
gost.Println("{}", tree)
}

BTreeSet[K]
BTree ๊ธฐ๋ฐ์ ์งํฉ ํ์
์ด๋ค.
์งํฉ ์ฐ์ฐ์ ์์ง ์๊ณ , ๊ตฌํ ์์ ์ด๋ค.
package main
import (
"fmt"
gost "github.com/myyrakle/gost"
)
func main() {
set := gost.BTreeSet[gost.I32]{}
set.Insert(gost.I32(3))
set.Insert(gost.I32(4))
set.Insert(gost.I32(5))
set.Insert(gost.I32(6))
set.Insert(gost.I32(7))
set.Insert(gost.I32(8))
set.Insert(gost.I32(9))
set.Insert(gost.I32(10))
set.Insert(gost.I32(11))
set.Insert(gost.I32(12))
set.Insert(gost.I32(13))
set.Insert(gost.I32(14))
set.Insert(gost.I32(15))
fmt.Println(set.Contains(gost.I32(33)))
fmt.Println(set.Contains(gost.I32(3)))
gost.Println("{}", set)
}

HashSet[K]
ํด์์ ์ด๋ค.
package main
import (
"fmt"
gost "github.com/myyrakle/gost"
)
func main() {
set := gost.HashSetNew[gost.I32\]()
set.Insert(gost.I32(3))
set.Insert(gost.I32(4))
set.Insert(gost.I32(5))
set.Insert(gost.I32(6))
set.Insert(gost.I32(7))
set.Insert(gost.I32(8))
set.Insert(gost.I32(9))
set.Insert(gost.I32(10))
set.Insert(gost.I32(11))
set.Insert(gost.I32(12))
set.Insert(gost.I32(13))
set.Insert(gost.I32(14))
set.Insert(gost.I32(15))
fmt.Println(set.Contains(gost.I32(33)))
fmt.Println(set.Contains(gost.I32(3)))
gost.Println("{}", set)
}

์ด์ ์ปฌ๋ ์ ์ VecDeque์ Heap๋ง ์ถ๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.