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