diff --git a/src/lib/container/intvector.go b/src/lib/container/intvector.go index 9aae50d6eb5..775d3682c93 100644 --- a/src/lib/container/intvector.go +++ b/src/lib/container/intvector.go @@ -6,59 +6,74 @@ package vector import "vector" +// IntVector is a specialization of Vector that hides the wrapping of Elements around ints. type IntVector struct { // TODO do not export field vector.Vector; } +// Init initializes a new or resized vector. The initial length may be <= 0 to +// request a default length. If initial_len is shorter than the current +// length of the IntVector, trailing elements of the IntVector will be cleared. func (p *IntVector) Init(len int) *IntVector { p.Vector.Init(len); return p; } +// NewIntVector returns an initialized new IntVector with length at least len. func NewIntVector(len int) *IntVector { return new(IntVector).Init(len) } +// At returns the i'th element of the vector. func (p *IntVector) At(i int) int { return p.Vector.At(i).(int) } +// Set sets the i'th element of the vector to value x. func (p *IntVector) Set(i int, x int) { p.Vector.Set(i, x) } +// Last returns the element in the vector of highest index. func (p *IntVector) Last() int { return p.Vector.Last().(int) } +// Insert inserts into the vector an element of value x before +// the current element at index i. func (p *IntVector) Insert(i int, x int) { p.Vector.Insert(i, x) } +// Delete deletes the i'th element of the vector. The gap is closed so the old +// element at index i+1 has index i afterwards. func (p *IntVector) Delete(i int) int { return p.Vector.Delete(i).(int) } +// Push appends x to the end of the vector. func (p *IntVector) Push(x int) { p.Vector.Push(x) } +// Pop deletes and returns the last element of the vector. func (p *IntVector) Pop() int { return p.Vector.Pop().(int) } // SortInterface support +// Less returns a boolean denoting whether the i'th element is less than the j'th element. func (p *IntVector) Less(i, j int) bool { return p.At(i) < p.At(j) }