Documentation
¶
Overview ¶
Example (Search) ¶
vec := New(1, 2, 3, 4, 5, 6, 7) index := vec.SearchFunc(func(e int) bool { return 7 <= e }) fmt.Println(index)
Output:
Index ¶
- Variables
- type Vec
- func (v *Vec[T]) Append(other *Vec[T]) *Vec[T]
- func (v *Vec[T]) Cap() int
- func (v *Vec[T]) Clear()
- func (v *Vec[T]) Clone() *Vec[T]
- func (v *Vec[T]) DedupFunc(cmp func(a, b T) bool) *Vec[T]
- func (v *Vec[T]) Delete(i, j int) *Vec[T]
- func (v *Vec[T]) ExtendWith(newLen int, value T) *Vec[T]
- func (v *Vec[T]) Filter(filter func(e T) bool) *Vec[T]
- func (v *Vec[T]) First() (n T, ok bool)
- func (v *Vec[T]) Get(index int) (e T)
- func (v *Vec[T]) GetPtr(index int) (e *T)
- func (v *Vec[T]) Insert(i int, es ...T) *Vec[T]
- func (v *Vec[T]) IsEmpty() bool
- func (v *Vec[T]) Last() (n T, ok bool)
- func (v *Vec[T]) Len() int
- func (v *Vec[T]) Map(m func(e T) T) *Vec[T]
- func (v *Vec[T]) Pop() (e T, ok bool)
- func (v *Vec[T]) PopFront() (e T, ok bool)
- func (v *Vec[T]) Push(e ...T) *Vec[T]
- func (v *Vec[T]) Range(callback func(index int, v T) bool) *Vec[T]
- func (v *Vec[T]) Remove(index int) *Vec[T]
- func (v *Vec[T]) Repeat(count int) *Vec[T]
- func (v *Vec[T]) Reserve(additional int) *Vec[T]
- func (v *Vec[T]) ReserveExact(additional int) *Vec[T]
- func (v *Vec[T]) Resize(newLen int, value T) *Vec[T]
- func (v *Vec[T]) Retain(filter func(e T) bool) *Vec[T]
- func (v *Vec[T]) Rev() *Vec[T]
- func (v *Vec[T]) RotateLeft(n int) *Vec[T]
- func (v *Vec[T]) RotateRight(n int) *Vec[T]
- func (v *Vec[T]) SearchFunc(f func(T) bool) int
- func (v *Vec[T]) Set(index int, value T) *Vec[T]
- func (v *Vec[T]) SetLen(newLen int)
- func (v *Vec[T]) ShrinkTo(minCapacity int) *Vec[T]
- func (v *Vec[T]) ShrinkToFit() *Vec[T]
- func (v *Vec[T]) SplitOff(at int) (new *Vec[T])
- func (v *Vec[T]) SwapRemove(index int) (rv T)
- func (v *Vec[T]) TakeFirst() (n T, ok bool)
- func (v *Vec[T]) ToSlice() []T
- func (v *Vec[T]) Truncate(newLen int)
- func (v *Vec[T]) TryGet(index int) (e T, ok bool)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrLenGreaterCap = errors.New("len is too long > length of cap")
)
Functions ¶
This section is empty.
Types ¶
type Vec ¶
type Vec[T any] []T
vec类型
func (*Vec[T]) Clear ¶
func (v *Vec[T]) Clear()
清空vec里面的所有值 TODO 需要看下效率. 如果效率不行,使用reflect.SliceHeader, 强转, 然后挨个置空
func (*Vec[T]) ExtendWith ¶
在vec后面追加newLen 长度的value
func (*Vec[T]) ReserveExact ¶
如果容量已经满足, 则什么事也不做 保留最小容量, 提前在现有基础上再额外申请 additional 长度空间
func (*Vec[T]) Resize ¶
调整vec的大小, 使用len等于newLen 如果newLen > len, 差值部分会填充value 如果newLen < len, 多余的部分会被截断
func (*Vec[T]) SplitOff ¶
在给定索引处将vec拆分为两个 返回一个新的vec, 范围是[at, len), 这里需要注意 原始的vec的范围是[0, at), 不改变原先的容量
func (*Vec[T]) SwapRemove ¶
删除指定索引的元素, 空缺的位置, 使用最后一个元素替换上去
Click to show internal directories.
Click to hide internal directories.