[前へ]
[目次へ]
[次へ]
Array (ネイティブクラス)
このクラスは配列を扱うクラスです。
このクラスはサブタイプとして配列の要素型を取ります。
配列の要素として割り当てられたオブジェクトはネイティブ管理オブジェクトになります。
これらのオブジェクトは配列オブジェクトの消滅時に連動して消滅し、寿命の変更はできません。
●継承
このクラスは継承をしていません。
●インターフェイスとインターフェイスメソッド
このクラスはインターフェイスの実装宣言をしていません。
●クラスメソッド
このクラスはクラスメソッドを持っていません。
●クラスメンバメソッド
名前
概要
#operator[]
指定した要素番号の参照を取得します
#operator{}
指定した要素番号の参照を取得します
#operator=[]
複数の要素を一斉代入します
Get
指定した要素番号の参照を取得します
GetTry
指定した要素番号の参照を取得します
Set
要素を代入します
AllocRef
参照のみを確保します
Alloc
要素を確保します
Reserve
要素数を変更せずにメモリを確保します
Move
要素を移動します
Push
ひとつの要素を末尾に追加します
PushAlloc
ひとつの要素を末尾に追加します
PushList
配列を末尾に追加します
PushEx
複数の要素を末尾に追加します
PushRef
ひとつの参照を末尾に追加します
Pop
末尾の要素をひとつ削除します
UnShift
ひとつの要素を先頭に追加します
UnShiftAlloc
ひとつの要素を先頭に追加します
UnShiftRef
ひとつの参照を先頭に追加します
Shift
先頭の要素をひとつ削除します
Reverse
配列の並びを逆にします
Insert
ひとつの要素を指定位置に挿入します
InsertAlloc
ひとつの要素を指定位置に挿入します
InsertRef
ひとつの参照を指定位置に挿入します
Erase
指定した要素を削除します
Exchange
指定した二つの要素を交換します
AllClear
配列を完全にクリアします
AllUnLock
要素を全て削除します
GetCount
要素数を取得します
GetFirst
先頭の要素を取得します
GetLast
末尾の要素を取得します
GetAtByLast
指定した要素番号の参照を取得します
Randomize
要素をランダムに再配置します
Sort
要素を整列します
AllocObject
指定した要素番号にオブジェクトを割り当てます
FreeObject
指定した要素番号のオブジェクトだけを解放します
SetObject
指定した要素番号に既存のオブジェクトを割り当てます
ObjectIndexOf
指定した参照の要素番号を調べます
IndexOf
指定した値と一致する要素番号を調べます
IsValidIndex
指定した要素番号が有効か判定します
●クラス共有変数
このクラスはクラス共有変数を持っていません。
●インスタンス変数
このクラスはインスタンス変数を持っていません。
●C++レベル追加情報
クラスID:
FGES_CLASSID_ARRAY
クラス名:
FGESArray
Array::#operator[]
public SubType?@ #operator[](
IInteger
v)depend
この配列の
v
番の要素の参照を返します。
このメソッドは指定した要素番号が無効な場合、例外が発生します。
このメソッドは最初に
v
から
INativeInteger
による取得を試みます。
これに失敗した場合、
v.Get
を呼び出します。
戻り値:指定した要素番号の参照を返します。
IInteger
v
:取得する要素番号(0起算)
先頭へ
Array::#operator{}
public SubType?@ #operator{}(
IInteger
v)depend
この配列の
v
番の要素の参照を返します。
このメソッドは指定した要素番号が無効な場合、空参照を返します。
このメソッドは最初に
v
から
INativeInteger
による取得を試みます。
これに失敗した場合、
v.Get
を呼び出します。
戻り値:指定した要素番号の参照を返します。
IInteger
v
:取得する要素番号(0起算)
先頭へ
Array::#operator=[]
public SelfType<SubType>@ #operator=[](...)
この配列に引数として渡した要素を一括して代入します。
この配列が既に持っていた要素は全て削除され、引数だけで構成された配列になります。
要素の代入は
#operator=
で行われます。
要素型は
#operator=
を定義していなければいけません。
戻り値:
this
を返します。
可変長引数:代入する要素リスト。要素型の
#operator=
で処理できる型でなければいけません。
先頭へ
Array::Get
public SubType?@ Get(
IInteger
index)depend
この配列の
index
番の要素の参照を返します。
このメソッドは指定した要素番号が無効な場合、例外が発生します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
このメソッドは
#operator[]
と同じ動作です。
戻り値:指定した要素番号の参照を返します。
IInteger
index
:取得する要素番号(0起算)
先頭へ
Array::GetTry
public SubType?@ GetTry(
IInteger
index)depend
この配列の
index
番の要素の参照を返します。
このメソッドは指定した要素番号が無効な場合、空参照を返します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
このメソッドは
#operator{}
と同じ動作です。
戻り値:指定した要素番号の参照を返します。
IInteger
index
:取得する要素番号(0起算)
先頭へ
Array::Set
public
Bool
Set(
IInteger
index, SubType obj)
この配列の
index
番の要素に
obj
を代入します。
このメソッドは指定した要素番号が無効な場合、偽を返し何も行いません。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
要素の代入は
#operator=
で行われます。
要素型は
#operator=
を定義していなければいけません。
戻り値:代入に成功すると真を返します。
IInteger
index
:設定する要素番号(0起算)
SubType obj
:設定する値
先頭へ
Array::AllocRef
public SelfType<SubType>@ AllocRef(
IInteger
count)
この配列の要素数を
count
まで増やします。
増やした要素にはオブジェクトは割り当てられず、空参照として追加されます。
count
がこの配列の要素数より少ない場合、何も起こりません。
このメソッドは最初に
count
から
INativeInteger
による取得を試みます。
これに失敗した場合、
count.Get
を呼び出します。
このメソッドはメモリの確保に失敗した場合、例外が発生します。
戻り値:
this
を返します。
IInteger
count
:確保する要素数
先頭へ
Array::Alloc
public SelfType<SubType>@ Alloc(
IInteger
count,
INativeClass
? mainclass=NULL,
INativeTypeObject
? subtype=NULL)
この配列の要素数を
count
まで増やします。
増やした要素には
mainclass
および
subtype
によって示される型のオブジェクトが作成されて割り当てられます。
mainclass
が空参照の場合は要素型が指定されたものとして扱います。
指定された型が実体化できない型の場合、例外が発生します。
count
がこの配列の要素数より少ない場合、何も起こりません。
このメソッドは最初に
count
から
INativeInteger
による取得を試みます。
これに失敗した場合、
count.Get
を呼び出します。
このメソッドはメモリの確保に失敗した場合、例外が発生します。
戻り値:
this
を返します。
IInteger
count
:確保する要素数
INativeClass
? mainclass=NULL
:作成するオブジェクトのクラス。
空参照を指定した場合は
mainclass
および
subtype
は要素型が指定されたものとして扱います。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Array::Reserve
public SelfType<SubType>@ Reserve(
IInteger
count)
この配列の要素数を変更せずに
count
分の要素管理用メモリを準備します。
このクラスは必要な場合、自動的にメモリを確保するため
通常はこのメソッドを明示的に呼び出す必要はありません。
このメソッドはパフォーマンスを最適化するためだけに存在します。
このメソッドは最初に
count
から
INativeInteger
による取得を試みます。
これに失敗した場合、
count.Get
を呼び出します。
このメソッドはメモリの確保に失敗した場合、例外が発生します。
戻り値:
this
を返します。
IInteger
count
:確保する要素数
先頭へ
Array::Move
public SelfType<SubType>@ Move(
IInteger
target,
IInteger
dst,
IInteger
count=1)
この配列の
target
番から
count
個の要素を
dst
番に移動します。
このメソッドは要素を並べ替えるだけで、オブジェクトの生成、消滅、編集などの動作は一切ありません。
このメソッドは最初に各引数から
INativeInteger
による取得を試みます。
これに失敗した場合、
IInteger@@Get
を呼び出します。
指定した要素番号が無効な場合例外が発生します。
戻り値:
this
を返します。
IInteger
target
:移動元の要素番号(0起算)
IInteger
dst
:移動先の要素番号(0起算)
IInteger
count=1
:移動する要素数
先頭へ
Array::Push
public SubType@ Push()
この配列の末尾に要素を追加します。
追加された要素には要素型のオブジェクトが作成されて割り当てられます。
要素型が実体化できない型の場合、例外が発生します。
戻り値:追加した要素の参照を返します。
先頭へ
Array::PushAlloc
public SubType@ PushAlloc(
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この配列の末尾に要素を追加します。
追加された要素には
mainclass
および
subtype
によって示される型のオブジェクトが作成されて割り当てられます。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
戻り値:追加した要素の参照を返します。
INativeClass
mainclass
:作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Array::PushList
public SelfType<SubType>@ PushList( SelfType<SubType> list)
この配列の末尾に配列を追加します。
追加された要素には要素型のオブジェクトが作成されて割り当てられ、引数の要素が順次代入されます。
要素型が実体化できない型の場合、例外が発生します。
戻り値:
this
を返します。
SelfType<SubType> list
:代入する配列オブジェクト
先頭へ
Array::PushEx
public SelfType<SubType>@ PushEx( SubType val1,...)
この配列の末尾に引数分の要素を追加します。
追加された要素には要素型のオブジェクトが作成されて割り当てられ、引数が順次代入されます。
要素型が実体化できない型の場合、例外が発生します。
要素の代入は
#operator=
で行われます。
要素型は
#operator=
を定義していなければいけません。
戻り値:
this
を返します。
SubType val1
:代入する要素オブジェクト
可変長引数:2個目以降の代入するオブジェクト
先頭へ
Array::PushRef
public SelfType<SubType>@ PushRef()
この配列の末尾に要素を追加します。
追加された要素にはオブジェクトは割り当てられず、空参照として追加されます。
戻り値:
this
を返します。
先頭へ
Array::Pop
public SelfType<SubType>@ Pop()
この配列の末尾の要素を削除します。
削除した要素にオブジェクトが割り当てられている場合、同時に消滅します。
配列に要素がない場合、例外が発生します。
戻り値:
this
を返します。
先頭へ
Array::UnShift
public SubType@ UnShift()
この配列の先頭に要素を追加します。
追加された要素には要素型のオブジェクトが作成されて割り当てられます。
要素型が実体化できない型の場合、例外が発生します。
戻り値:追加した要素の参照を返します。
先頭へ
Array::UnShiftAlloc
public SubType@ UnShiftAlloc(
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この配列の先頭に要素を追加します。
追加された要素には
mainclass
および
subtype
によって示される型のオブジェクトが作成されて割り当てられます。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
戻り値:追加した要素の参照を返します。
INativeClass
mainclass
:作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Array::UnShiftRef
public SelfType<SubType>@ UnShiftRef()
この配列の先頭に要素を追加します。
追加された要素にはオブジェクトは割り当てられず、空参照として追加されます。
戻り値:
this
を返します。
先頭へ
Array::Shift
public SelfType<SubType>@ Shift()
この配列の先頭の要素を削除します。
削除した要素にオブジェクトが割り当てられている場合、同時に消滅します。
配列に要素がない場合、例外が発生します。
戻り値:
this
を返します。
先頭へ
Array::Reverse
public SelfType<SubType>@ Reverse()
この配列の要素の並びを逆順にします。
このメソッドは要素を並べ替えるだけで、オブジェクトの生成、消滅、編集などの動作は一切ありません。
戻り値:
this
を返します。
先頭へ
Array::Insert
public SubType@ Insert(
IInteger
index)
この配列の
index
番に要素を挿入します。
追加された要素は指定した要素番号になります。
追加された要素には要素型のオブジェクトが作成されて割り当てられます。
要素型が実体化できない型の場合、例外が発生します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
指定する要素番号は追加後に有効な番号でなければいけません。
戻り値:追加した要素の参照を返します。
IInteger
index
:挿入する要素番号(0起算)
先頭へ
Array::InsertAlloc
public SubType@ InsertAlloc(
IInteger
index,
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この配列の
index
番に要素を挿入します。
追加された要素は指定した要素番号になります。
追加された要素には
mainclass
および
subtype
によって示される型のオブジェクトが作成されて割り当てられます。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
指定する要素番号は追加後に有効な番号でなければいけません。
戻り値:追加した要素の参照を返します。
IInteger
index
:挿入する要素番号(0起算)
INativeClass
mainclass
:作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Array::InsertRef
public SelfType<SubType>@ InsertRef(
IInteger
index)
この配列の
index
番に要素を挿入します。
追加された要素は指定した要素番号になります。
追加された要素にはオブジェクトは割り当てられず、空参照として追加されます。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
指定する要素番号は追加後に有効な番号でなければいけません。
戻り値:
this
を返します。
IInteger
index
:挿入する要素番号(0起算)
先頭へ
Array::Erase
public SelfType<SubType>@ Erase(
IInteger
target,
IInteger
count=1)
この配列の
target
番から
count
個の要素を削除します。
削除した要素にオブジェクトが割り当てられている場合、同時に消滅します。
削除した要素より後ろに要素がある場合、削除した数分番号が詰められます。
このメソッドは最初に各引数から
INativeInteger
による取得を試みます。
これに失敗した場合、
IInteger@@Get
を呼び出します。
指定した要素番号が無効な場合例外が発生します。
戻り値:
this
を返します。
IInteger
target
:削除する要素番号(0起算)
IInteger
count=1
:削除する要素数
先頭へ
Array::Exchange
public SelfType<SubType>@ Exchange(
IInteger
index1,
IInteger
index2)
この配列の
index1
番と
index2
番の要素を交換します。
このメソッドは要素を並べ替えるだけで、オブジェクトの生成、消滅、編集などの動作は一切ありません。
このメソッドは最初に各引数から
INativeInteger
による取得を試みます。
これに失敗した場合、
IInteger@@Get
を呼び出します。
指定した要素番号が無効な場合例外が発生します。
戻り値:
this
を返します。
IInteger
index1
:対象の要素番号(0起算)
IInteger
index2
:対象の要素番号(0起算)
先頭へ
Array::AllClear
public SelfType<SubType>@ AllClear()
この配列の全ての要素を削除し、メモリも解放します。
配列要素に割り当てられているオブジェクトも全て消滅します。
このメソッドは要素管理用のメモリも解放します。
配列をリセットしてすぐに再使用する場合は
AllUnLock
を使用すべきです。
戻り値:
this
を返します。
先頭へ
Array::AllUnLock
public SelfType<SubType>@ AllUnLock()
この配列の全ての要素を削除します。
配列要素に割り当てられているオブジェクトも全て消滅します。
このメソッドは要素管理用のメモリは解放しません。
配列をリセットしてすぐに再使用する場合は
AllClear
より適切です。
戻り値:
this
を返します。
先頭へ
Array::GetCount
public
Integer
GetCount()const
この配列の要素数を返します。
戻り値:この配列の要素数を返します。
先頭へ
Array::GetFirst
public SubType@ GetFirst()depend
この配列の先頭要素の参照を返します。
配列に要素がない場合、例外が発生します。
戻り値:配列の先頭要素の参照を返します。
先頭へ
Array::GetLast
public SubType@ GetLast()depend
この配列の末尾要素の参照を返します。
配列に要素がない場合、例外が発生します。
戻り値:配列の末尾要素の参照を返します。
先頭へ
Array::GetAtByLast
public SubType@ GetAtByLast(
IInteger
index)depend
この配列の
(要素数-1-index)
番の要素の参照を返します。
つまり、末尾を0とし、先頭に向かって数えた要素番号で
index
を指定します。
このメソッドは指定した要素番号が無効な場合、例外が発生します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
戻り値:指定した要素番号の参照を返します。
IInteger
index
:取得する要素番号(末尾起算逆順)
先頭へ
Array::Randomize
public SelfType<SubType>@ Randomize()
この配列をランダムに再配置します。
戻り値:
this
を返します。
先頭へ
Array::Sort
public SelfType<SubType>@ Sort(
INativeClosure
? comp_method=NULL)
この配列を昇順に整列します。
comp_method
に有効な参照を与えた場合、要素の比較メソッドとして使用します。
この時、このメソッドは戻り値型
Integer
、
引数として要素型(またはそれに暗黙変換できる型)を2つ取る形であり、
第一引数
<
第二引数の時負値、二つが同じ時0、第一引数
>
第二引数の時正値を返すものでなければいけません。
大小関係と戻り値の符号関係を逆にすると降順ソートになりますが、
一貫性のない結果を返すと例外が発生する場合があります。
comp_method
が空参照である場合、
各オブジェクトの
#operator<
および
#operator>
を使用してソートします。
配列内に複数の型のオブジェクトが混在する場合、その全てで一貫性のある結果が得られるようにしてください。
この時、空参照は常に大きいものとして扱われ、演算子メソッドの呼び出しは行いません。
このメソッドは比較をFGESレベルで行うため動作速度が遅くなります。
このためメソッドの実行時間に制限が掛けられており、
ソートに時間が掛かりすぎると例外が発生するようになっています。
比較に時間が掛かる場合や要素数が多い場合はこのメソッドの使用を避け、
ネイティブ配列クラスを使用できないか検討してください。
このメソッドの実行中、さらにこのメソッドを実行することはできません。
戻り値:
this
を返します。
INativeClosure
? comp_method=NULL
:比較メソッド
先頭へ
Array::AllocObject
public SubType@ AllocObject(
IInteger
index,
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この配列の
index
番の要素に新しくオブジェクトを作成して割り当てます。
指定した要素は空参照でなければいけません。
作成するオブジェクトは
mainclass
および
subtype
によって示される型になります。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
指定した要素番号が無効な場合例外が発生します。
戻り値:作成したオブジェクトの参照を返します。
IInteger
index
:割り当てる要素番号(0起算)
INativeClass
mainclass
:作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Array::FreeObject
public
Bool
FreeObject(
IInteger
index)
この配列の
index
番の要素に割り当てられているオブジェクトを解放します。
解放されたオブジェクトは直ちに消滅し、指定した要素は空参照になります。
指定した要素が最初から空参照であった場合何も起こりません。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
指定した要素番号が無効な場合例外が発生します。
戻り値:この呼び出しでオブジェクトが解放された場合真を返します。
IInteger
index
:解放する要素番号(0起算)
先頭へ
Array::SetObject
public SubType@ SetObject(
IInteger
index,editable SubType obj)
この配列の
index
番の要素に
obj
を割り当てます。
指定した要素は空参照でなければいけません。
obj
はローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
このメソッドは
obj
のメモリ管理をこの配列オブジェクトの管理に変更します。
obj
が要素型の参照に参照代入できない場合例外が発生します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
指定した要素番号が無効な場合例外が発生します。
戻り値:
obj
への参照を返します。
IInteger
index
:割り当てる要素番号(0起算)
editable SubType obj
:[移譲]設定するオブジェクト
先頭へ
Array::ObjectIndexOf
public
Integer
ObjectIndexOf( SubType? obj,
IInteger
? startindex=NULL)const
この配列内の
startindex
以降にある
obj
オブジェクトの要素番号を検索します。
このメソッドは参照比較のみを行い、値の比較はしません。
obj
がこの配列内の要素ではない場合や検索範囲外の要素である場合は-1を返します。
このメソッドは最初に
startindex
から
INativeInteger
による取得を試みます。
これに失敗した場合、
startindex.Get
を呼び出します。
戻り値:指定したオブジェクトに対応する要素番号か、見つからなければ-1を返します。
SubType? obj
:検索するオブジェクト。
IInteger
? startindex=NULL
:検索開始する要素番号(0起算)
空参照を指定した場合は0として扱います。
先頭へ
Array::IndexOf
public
Integer
IndexOf( SubType obj,
IInteger
? startindex=NULL)const
この配列内の
startindex
以降にある
obj
と一致する要素番号を検索します。
このメソッドはこの配列の要素をホストとして
#operator==
による比較を行い、
検索範囲内で一致した最も小さい要素番号を返します。
検索範囲内に一致する要素が存在しない場合は-1を返します。
また、検索範囲内に空参照や
#operator==
を使用できないオブジェクトがある場合例外が発生します。
このメソッドは最初に
startindex
から
INativeInteger
による取得を試みます。
これに失敗した場合、
startindex.Get
を呼び出します。
戻り値:指定した値と一致する要素番号か、見つからなければ-1を返します。
SubType obj
:検索する値。
IInteger
? startindex=NULL
:検索開始する要素番号(0起算)
空参照を指定した場合は0として扱います。
先頭へ
Array::IsValidIndex
public
Bool
IsValidIndex(
IInteger
index)const
index
がこの配列の要素番号として有効か判定します。
このメソッドは最初に
index
から
INativeInteger
による取得を試みます。
これに失敗した場合、
index.Get
を呼び出します。
戻り値:
index
がこの配列の要素番号として有効であれば真を返します。
IInteger
index
:判定する要素番号。
先頭へ
[前へ]
[目次へ]
[次へ]
最終更新 2021/03/06