Documentation ¶
Index ¶
- type FloatKey
- type IntKey
- type Key
- type LimitWaitGroup
- type OrderedMap
- func (om *OrderedMap) Begin() (key Key, value interface{})
- func (om *OrderedMap) Clear()
- func (om *OrderedMap) Count(key Key) (num int, err error)
- func (om *OrderedMap) Empty() bool
- func (om *OrderedMap) Erase(key Key) (err error)
- func (om *OrderedMap) Find(key Key) (value interface{}, found bool, err error)
- func (om *OrderedMap) Insert(key Key, value interface{}) (err error)
- func (om *OrderedMap) Next(key Key) (nextkey Key, nextvalue interface{}, err error)
- func (om *OrderedMap) Prev(key Key) (prekey Key, prevalue interface{}, err error)
- func (om *OrderedMap) RBegin() (key Key, value interface{})
- func (om *OrderedMap) Size() int
- func (om *OrderedMap) String() string
- type StringKey
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LimitWaitGroup ¶
type LimitWaitGroup struct {
// contains filtered or unexported fields
}
LimitWaitGroup ...
type OrderedMap ¶
type OrderedMap struct {
// contains filtered or unexported fields
}
OrderedMap 按照 key 排序的 map,可以实现顺序遍历。 OrderedMap 使用 avl 树实现,是线程安全的。 和 c++ map 对比测试,1000 万的随机的增删查操作: OrderedMap: 21806 ms, c++ map: 11592ms,效率比 c++ map 慢两倍。 next 遍历整个 map, OrderedMap: 676ms, c++ map: 171ms; prev 遍历整个 map, OrderedMap: 663ms, c++ map: 198ms; 遍历的效率大概比 c++ map 的慢三倍。
func (*OrderedMap) Begin ¶
func (om *OrderedMap) Begin() (key Key, value interface{})
Begin 获取最小的元素的 key 和 value,配合 Next 进行迭代
func (*OrderedMap) Count ¶
func (om *OrderedMap) Count(key Key) (num int, err error)
Count 查找 key 的个数
func (*OrderedMap) Find ¶
func (om *OrderedMap) Find(key Key) (value interface{}, found bool, err error)
Find 查询 key 的 value
func (*OrderedMap) Insert ¶
func (om *OrderedMap) Insert(key Key, value interface{}) (err error)
Insert 插入元素
func (*OrderedMap) Next ¶
func (om *OrderedMap) Next(key Key) (nextkey Key, nextvalue interface{}, err error)
Next 寻找比 key 大的下一个节点
func (*OrderedMap) Prev ¶
func (om *OrderedMap) Prev(key Key) (prekey Key, prevalue interface{}, err error)
Prev 寻找比 key 小的下一个节点
func (*OrderedMap) RBegin ¶
func (om *OrderedMap) RBegin() (key Key, value interface{})
RBegin 获取最大的元素的 key 和 value,配合 Prev 进行迭代
Click to show internal directories.
Click to hide internal directories.