新手请教写 go 时常用数据结构怎么办

2019-05-22 09:05:23 +08:00
 hardwork

比如队列这种,像 c++的 queue,c 语言也没有,一般就用第三方基础数据结构。那么 go 呢,一般项目实践中是怎么弄的?也自己弄一个吗,或者数组代替,或者有稳定的第三方包可用?新手问题,见笑了。

5786 次点击
所在节点    Go 编程语言
27 条回复
yvescheung
2019-05-22 14:25:47 +08:00
Golang container 包中有堆,链表,环的数据结构,链表可以作为队列,可以看一看
hardwork
2019-05-22 14:42:08 +08:00
@reus 很简洁
galahadv2
2019-05-22 16:00:41 +08:00
https://github.com/emirpasic/gods 是一个用 Go 实现的各种数据结构和算法的 package。功能很全面。

GoDS (Go Data Structures). Containers (Sets, Lists, Stacks, Maps, Trees), Sets (HashSet, TreeSet, LinkedHashSet), Lists (ArrayList, SinglyLinkedList, DoublyLinkedList), Stacks (LinkedListStack, ArrayStack), Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap, LinkedHashMap), Trees (RedBlackTree, AVLTree, BTree, BinaryHeap), Comparators, Iterators, …
fengjianxinghun
2019-05-22 16:48:42 +08:00
interface{}都类型安全不了,这些容器类没有范型都是残废啊。。
usingnamespace
2019-05-22 20:36:36 +08:00
@lance6716 我说了可以啊 就刷题而言 go 缺少的比 cpp 多 go 库的完善不体现在刷题所需要的这些东西上 你这种说法真的是。。。那用 c 的刷题话自己写一个红黑树实现 map 用呗??
littlewing
2019-05-22 22:47:25 +08:00
go 啥时候有泛型就好了,interface{}是在太难用
dabaibai
2019-05-23 20:07:16 +08:00
chan 定长

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/566422

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX