import "container/vector"
要素の並び順を管理するためのコンテナを実装しています。またVectorは動的にサイズを拡大/縮小することができます。
パッケージファイル
defs.go intvector.go stringvector.go vector.go
IntVector型
IntVectorは、順に並んでいるint型の要素を扱うためのコンテナです。長さとキャパシティは必要に応じて自動調整されます。ゼロ値は、空のベクタでいつでも利用可能な状態です。
type IntVector []int
(*IntVector) AppendVector関数
func (p *IntVector) AppendVector(x *IntVector)
AppendVectorは、このベクタの最後にxのすべてを追加します。
(*IntVector) At関数
func (p *IntVector) At(i int) int
Atは、このベクタのi番目の要素を返します。
(*IntVector) Cap関数
func (p *IntVector) Cap() int
Capは、このベクタのキャパシティを返します。これは長さをリサイズすることなく拡大可能な上限値で、cap(*p)と同じです。
(*IntVector) Copy関数
func (p *IntVector) Copy() IntVector
Copyは、vectorのコピーを作成し、返します。
(*IntVector) Cut関数
func (p *IntVector) Cut(i, j int)
Cutは、iからjまでの要素(iとjを含む)を削除します。
(*IntVector) Delete関数
func (p *IntVector) Delete(i int)
Deleteは、ベクタのi番目の要素を削除します。削除した要素以降は詰められ、以前i+1番目だった要素はi番目に変わります。
(*IntVector) Do関数
func (p *IntVector) Do(f func(elem int))
Doは、ベクタの全要素を順番に使ってf関数を呼び出します。f関数内で*pを変更したときの振る舞いは定義されていません。
(*IntVector) Expand関数
func (p *IntVector) Expand(i, n int)
iの位置に要素を挿入します。
(*IntVector) Extend関数
func (p *IntVector) Extend(n int)
ベクタの最後に要素を追加します。
(*IntVector) Insert関数
func (p *IntVector) Insert(i int, x int)
Insertは、インデックスiの要素の前に要素xを挿入します。
(*IntVector) InsertVector関数
func (p *IntVector) InsertVector(i int, x *IntVector)
InsertVectorは、ベクタにベクタxの内容を挿入します。挿入後にインデックスiの位置は挿入したxの0番目の要素となります。
(*IntVector) Last関数
func (p *IntVector) Last() int
Lastは、最大インデックスの要素を返します。
(*IntVector) Len関数
func (p *IntVector) Len() int
Lenは、ベクタの要素数を返します。これはlen(*p)と同じです。
(*IntVector) Less関数
func (p *IntVector) Less(i, j int) bool
Lessは、i番目の要素がj番目の要素よりも小さいかどうかを表す論理値を返します。
(*IntVector) Pop関数
func (p *IntVector) Pop() int
Popは、ベクタの最後の要素を削除します。
(*IntVector) Push関数
func (p *IntVector) Push(x int)
Pushは、ベクタの最後にxを追加します。
(*IntVector) Resize関数
func (p *IntVector) Resize(length, capacity int) *IntVector
Resizeは、ベクタの長さとキャパシティを変更します。新しい長さがいまより短かければ、Resizeは以降の要素を破棄します。新しい長さがいまより長ければ、その差の分だけ要素のゼロ値を加えます。新しい長さまたはキャパシティが、いまのキャパシティより短いときは、パラメータで指定したキャパシティは無視されます。サイズ変更後のベクタのキャパシティは指定したキャパシティより大きい値になる可能性があります。
(*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) Swap関数
func (p *IntVector) Swap(i, j int)
Swapは、インデックスiとjの位置にある要素を入れ替えます。
LessInterface型
LessInterfaceは、sort.Interfaceの部分的なサポートを提供します。
type LessInterface interface {
Less(y interface{}) bool
}
StringVector型
StringVectorは、順に並んでいるstring型の要素を扱うためのコンテナです。長さとキャパシティは必要に応じて自動調整されます。ゼロ値は、空のベクタでいつでも利用可能な状態です。
type StringVector []string
(*StringVector) AppendVector関数
func (p *StringVector) AppendVector(x *StringVector)
AppendVectorは、このベクタの最後にxのすべてを追加します。
(*StringVector) At関数
func (p *StringVector) At(i int) string
Atは、このベクタのi番目の要素を返します。
(*StringVector) Cap関数
func (p *StringVector) Cap() int
Capは、このベクタのキャパシティを返します。これは長さをリサイズすることなく拡大可能な上限値で、cap(*p)と同じです。
(*StringVector) Copy関数
func (p *StringVector) Copy() StringVector
Copyは、vectorのコピーを作成し、返します。
(*StringVector) Cut関数
func (p *StringVector) Cut(i, j int)
Cutは、iからjまでの要素(iとjを含む)を削除します。
(*StringVector) Delete関数
func (p *StringVector) Delete(i int)
Deleteは、ベクタのi番目の要素を削除します。削除した要素以降は詰められ、以前i+1番目だった要素はi番目に変わります。
(*StringVector) Do関数
func (p *StringVector) Do(f func(elem string))
Doは、ベクタの全要素を順番に使ってf関数を呼び出します。f関数内で*pを変更したときの振る舞いは定義されていません。
(*StringVector) Expand関数
func (p *StringVector) Expand(i, n int)
iの位置に要素を挿入します。
(*StringVector) Extend関数
func (p *StringVector) Extend(n int)
ベクタの最後に要素を追加します。
(*StringVector) Insert関数
func (p *StringVector) Insert(i int, x string)
Insertは、インデックスiの要素の前に要素xを挿入します。
(*StringVector) InsertVector関数
func (p *StringVector) InsertVector(i int, x *StringVector)
InsertVectorは、ベクタにベクタxの内容を挿入します。挿入後にインデックスiの位置は挿入したxの0番目の要素となります。
(*StringVector) Last関数
func (p *StringVector) Last() string
Lastは、最大インデックスの要素を返します。
(*StringVector) Len関数
func (p *StringVector) Len() int
Lenは、ベクタの要素数を返します。これはlen(*p)と同じです。
(*StringVector) Less関数
func (p *StringVector) Less(i, j int) bool
Lessは、i番目の要素がj番目の要素よりも小さいかどうかを表す論理値を返します。
(*StringVector) Pop関数
func (p *StringVector) Pop() string
Popは、ベクタの最後の要素を削除します。
(*StringVector) Push関数
func (p *StringVector) Push(x string)
Pushは、ベクタの最後にxを追加します。
(*StringVector) Resize関数
func (p *StringVector) Resize(length, capacity int) *StringVector
Resizeは、ベクタの長さとキャパシティを変更します。新しい長さがいまより短かければ、Resizeは以降の要素を破棄します。新しい長さがいまより長ければ、その差の分だけ要素のゼロ値を加えます。新しい長さまたはキャパシティが、いまのキャパシティより短いときは、パラメータで指定したキャパシティは無視されます。サイズ変更後のベクタのキャパシティは指定したキャパシティより大きい値になる可能性があります。
(*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を作成して、それを返します。要素はコピーされるため、元のベクタは変更されません。
(*StringVector) Swap型
func (p *StringVector) Swap(i, j int)
Swapは、インデックスiとjの位置にある要素を入れ替えます。
Vector型
Vectorは、順に並んでいるinterface{}型の要素を扱うためのコンテナです。長さとキャパシティは必要に応じて自動調整されます。ゼロ値は、空のベクタでいつでも利用可能な状態です。
type Vector []interface{}
(*Vector) AppendVector関数
func (p *Vector) AppendVector(x *Vector)
AppendVectorは、このベクタの最後にxのすべてを追加します。
(*Vector) At関数
func (p *Vector) At(i int) interface{}
Atは、このベクタのi番目の要素を返します。
(*Vector) Cap関数
func (p *Vector) Cap() int
Capは、このベクタのキャパシティを返します。これは長さをリサイズすることなく拡大可能な上限値で、cap(*p)と同じです。
(*Vector) Copy関数
func (p *Vector) Copy() Vector
Copyは、vectorのコピーを作成し、返します。
(*Vector) Cut関数
func (p *Vector) Cut(i, j int)
Cutは、iからjまでの要素(iとjを含む)を削除します。
(*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関数を呼び出します。f関数内で*pを変更したときの振る舞いは定義されていません。
(*Vector) Expand関数
func (p *Vector) Expand(i, n int)
iの位置に要素を挿入します。
(*Vector) Extend関数
func (p *Vector) Extend(n int)
ベクタの最後に要素を追加します。
(*Vector) Insert関数
func (p *Vector) Insert(i int, x interface{})
Insertは、インデックスiの要素の前に要素xを挿入します。
(*Vector) InsertVector関数
func (p *Vector) InsertVector(i int, x *Vector)
InsertVectorは、ベクタにベクタxの内容を挿入します。挿入後にインデックスiの位置は挿入したxの0番目の要素となります。
(*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番目の要素よりも小さいかどうかを表す論理値を返します。
(*Vector) Pop関数
func (p *Vector) Pop() interface{}
Popは、ベクタの最後の要素を削除します。
(*Vector) Push関数
func (p *Vector) Push(x interface{})
Pushは、ベクタの最後にxを追加します。
(*Vector) Resize関数
func (p *Vector) Resize(length, capacity int) *Vector
Resizeは、ベクタの長さとキャパシティを変更します。新しい長さがいまより短かければ、Resizeは以降の要素を破棄します。新しい長さがいまより長ければ、その差の分だけ要素のゼロ値を加えます。新しい長さまたはキャパシティが、いまのキャパシティより短いときは、パラメータで指定したキャパシティは無視されます。サイズ変更後のベクタのキャパシティは指定したキャパシティより大きい値になる可能性があります。
(*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])することでサブベクタを作成し、それを返します。要素はコピーされるため、元のベクタは変更されません。
(*Vector) Swap関数
func (p *Vector) Swap(i, j int)
Swapは、インデックスiとjの位置にある要素を入れ替えます。
Trackback URL
Comments