import "container/vector"

要素の線形配列を効率的に管理するコンテナを実装しています。配列とは異なり、vectorは動的にサイズを変更することができます。

パッケージファイル

intvector.go stringvector.go vector.go

IntVector型

IntVectorはint要素をラッピングしたVectorを取り扱います。

type IntVector struct {
    Vector;
}

NewIntVector関数

func NewIntVector(len int) *IntVector

NewIntVectorは少なくともlenの長さを持つ、初期化済みの新しいIntVectorを返します。

(*IntVector) AppendVector関数

func (p *IntVector) AppendVector(x *IntVector)

AppendVectorはpの末尾にxの全てのIntVectorを追加します。

(*IntVector) At関数

func (p *IntVector) At(i int) int

Atはpのi番目の要素を返します。

(*IntVector) Data関数

func (p *IntVector) Data() []int

Dataは全要素をスライスとして返します。

(*IntVector) Init関数

func (p *IntVector) Init(len int) *IntVector

Initは新しいか、またはサイズ変更されたIntVectorを初期化します。初期サイズをデフォルト値にするにはlenに0以下の値を指定します。lenがIntVectorの現在のサイズよりも小さい場合はクリアされます。

(*IntVector) Insert関数

func (p *IntVector) Insert(i int, x int)

Insertはインデックスiの要素の前に要素xを挿入します。

(*IntVector) InsertVector関数

func (p *IntVector) InsertVector(i int, x *IntVector)

InsertVectorは挿入後はインデックスiの位置が挿入するxの0番目の要素となるようにxの内容を挿入します。

(*IntVector) Iter関数

func (p *IntVector) Iter() <-chan int

Iterは反復子のチャネルを返します。

(*IntVector) Last関数

func (p *IntVector) Last() int

Lastは最大インデックスの要素を返します。

(*IntVector) Less関数

func (p *IntVector) Less(i, j int) bool

Lessはi番目の要素がj番目の要素よりも小さいかどうかを比較し、boolean値を返します。

(*IntVector) Pop関数

func (p *IntVector) Pop() int

Popは末尾の要素を削除し、その要素の値を返します。

(*IntVector) Push関数

func (p *IntVector) Push(x int)

Pushは末尾にxを追加します。

(*IntVector) Set関数

func (p *IntVector) Set(i int, x int)

Setはi番目の要素へ値xをセットします。

(*IntVector) Slice関数

func (p *IntVector) Slice(i, j int) *IntVector

Sliceは元データをスライス(slice [i:j])することで新しいIntVectorを作成して、それを返します。要素はコピーされるため、元のpは変更されません。

LessInterface型

LessInterfaceはsort.Interfaceの部分的なサポートを提供します。

type LessInterface interface {
    Less(y interface{}) bool;
}

StringVector型

StringVectorは文字列要素をラッピングしたVectorを取り扱います。

type StringVector struct {
    Vector;
}

NewStringVector関数

func NewStringVector(len int) *StringVector

NewStringVectorは少なくともlenの長さを持つ、初期化済みの新しいStringVectorを返します。

(*StringVector) AppendVector関数

func (p *StringVector) AppendVector(x *StringVector)

AppendVectorはpの末尾にxの全てのStringVectorを追加します。

(*StringVector) At関数

func (p *StringVector) At(i int) string

Atはpのi番目の要素を返します。

(*StringVector) Data関数

func (p *StringVector) Data() []string

Dataは全要素をスライスとして返します。

(*StringVector) Init関数

func (p *StringVector) Init(len int) *StringVector

Initは新しいか、またはサイズ変更されたStringVectorを初期化します。初期サイズをデフォルト値にするにはlenに0以下の値を指定します。lenがStringVectorの現在のサイズよりも小さい場合はクリアされます。

(*StringVector) Insert関数

func (p *StringVector) Insert(i int, x string)

Insertはインデックスiの要素の前に要素xを挿入します。

(*StringVector) InsertVector関数

func (p *StringVector) InsertVector(i int, x *StringVector)

InsertVectorは挿入後はインデックスiの位置が挿入するxの0番目の要素となるようにxの内容を挿入します。

(*StringVector) Iter関数

func (p *StringVector) Iter() <-chan string

Iterは反復子のチャネルを返します。

(*StringVector) Last関数

func (p *StringVector) Last() string

Lastは最大インデックスの要素を返します。

(*StringVector) Less関数

func (p *StringVector) Less(i, j int) bool

Lessはi番目の要素がj番目の要素よりも小さいかどうかを比較し、boolean値を返します。

(*StringVector) Pop関数

func (p *StringVector) Pop() string

Popは末尾の要素を削除し、その要素の値を返します。

(*StringVector) Push関数

func (p *StringVector) Push(x string)

Pushは末尾にxを追加します。

(*StringVector) Set関数

func (p *StringVector) Set(i int, x string)

Setはi番目の要素へ値xをセットします。

(*StringVector) Slice関数

func (p *StringVector) Slice(i, j int) *StringVector

Sliceは元データをスライス(slice [i:j])することで新しいIntVectorを作成して、それを返します。要素はコピーされるため、元のpは変更されません。

Vector型

Vectorはコンテナです。ゼロ値のVectorは使用するための空のベクターを準備します。

type Vector struct {
    // contains unexported fields
}

New関数

func New(len int) *Vector

Newは少なくともlenの長さを持つ、初期化済みの新しいVectorを返します。

(*Vector) AppendVector関数

func (p *Vector) AppendVector(x *Vector)

AppendVectorはpの末尾にxの全てのVectorを追加します。

(*Vector) At関数

func (p *Vector) At(i int) interface{}

Atはpのi番目の要素を返します。

(*Vector) Cut関数

func (p *Vector) Cut(i, j int)

Cutはiからj-1の要素を削除します。

(*Vector) Data関数

func (p *Vector) Data() []interface{}

Dataは全要素をスライスとして返します。

(*Vector) Delete関数

func (p *Vector) Delete(i int)

Deleteはi番目の要素を削除します。削除前のi+1の要素のインデックスがiとなり、削除による隙間が詰められます。

(*Vector) Do関数

func (p *Vector) Do(f func(elem interface{}))

Doは各要素毎に順番に関数fを呼び出します。関数でベクターの索引付けを変更すべきではありません。

(*Vector) Init関数

func (p *Vector) Init(initial_len int) *Vector

Initは新しいか、またはサイズ変更されたIntVectorを初期化します。初期サイズをデフォルト値にするにはlenに0以下の値を指定します。lenがVectorの現在のサイズよりも小さい場合はクリアされます。

(*Vector) Insert関数

func (p *Vector) Insert(i int, x interface{})

Insertはインデックスiの要素の前に要素xを挿入します。

(*Vector) InsertVector関数

func (p *Vector) InsertVector(i int, x *Vector)

InsertVectorは挿入後はインデックスiの位置が挿入するxの0番目の要素となるようにxの内容を挿入します。

(*Vector) Iter関数

func (p *Vector) Iter() <-chan interface{}

Iterは反復子のチャネルを返します。

(*Vector) Last関数

func (p *Vector) Last() interface{}

Lastは最大インデックスの要素を返します。

(*Vector) Len関数

func (p *Vector) Len() int

Lenは要素数を返します。p == nilの場合はLenは0となります。

(*Vector) Less関数

func (p *Vector) Less(i, j int) bool

Lessはi番目の要素がj番目の要素よりも小さいかどうかを比較し、boolean値を返します。

(*Vector) Pop関数

func (p *Vector) Pop() interface{}

Popは末尾の要素を削除し、その要素の値を返します。

(*Vector) Push関数

func (p *Vector) Push(x interface{})

Pushは末尾にxを追加します。

(*Vector) Set関数

func (p *Vector) Set(i int, x interface{})

Setはi番目の要素へ値xをセットします。

(*Vector) Slice関数

func (p *Vector) Slice(i, j int) *Vector

Sliceは元データをスライス(slice [i:j])することで新しいIntVectorを作成して、それを返します。要素はコピーされるため、元のpは変更されません。

(*Vector) Swap関数

func (p *Vector) Swap(i, j int)

Swapはインデックスiとjの要素を入れ替えます。