[前へ]
[目次へ]
[次へ]
Map (ネイティブクラス)
このクラスは文字列キーによる連想配列を扱うクラスです。
このクラスはサブタイプとして連想配列の要素型を取ります。
このクラスの実装はハッシュマップです。
文字列キーの長さに上限はありませんが、30バイト以下の文字列長に最適化されています。
それ以上の長さのキーを扱うと動作速度が著しく低下する可能性があります。
配列の要素として割り当てられたオブジェクトはネイティブ管理オブジェクトになります。
これらのオブジェクトは配列オブジェクトの消滅時に連動して消滅し、寿命の変更はできません。
●継承
このクラスは継承をしていません。
●インターフェイスとインターフェイスメソッド
このクラスはインターフェイスの実装宣言をしていません。
●クラスメソッド
このクラスはクラスメソッドを持っていません。
●クラスメンバメソッド
名前
概要
#operator[]
指定した要素の参照を取得します
#operator{}
指定した要素の参照を取得します
#operator={}
複数の要素を一斉代入します
#operator:
指定した要素の参照を取得します
Get
指定した要素の参照を取得します
GetTry
指定した要素の参照を取得します
Set
要素を代入します
AllClear
要素を全て削除します
Erase
指定した要素を削除します
Exists
指定した要素が存在するか調べます
AddRef
空参照の要素を追加します
GetAddRef
指定した要素の参照を必要なら追加してから取得します
Add
要素を追加します
AddAlloc
要素を追加します
GetAdd
指定した要素の参照を必要なら追加してから取得します
GetAddAlloc
指定した要素の参照を必要なら追加してから取得します
AllocObject
指定した要素にオブジェクトを割り当てます
FreeObject
指定した要素のオブジェクトだけを解放します
SetObject
指定した要素に既存のオブジェクトを割り当てます
EachSet
列挙オブジェクトを設定します
Keys
要素名を列挙します
GetKeyList
要素名リストを取得します
Values
要素を列挙します
ValuesC
要素を列挙します
GetValueList
要素リストを取得します
GetValueListC
要素リストを取得します
KeyValues
要素名と要素を列挙します
KeyValuesC
要素名と要素を列挙します
GetKeyValueList
要素名と要素のリストを取得します
GetKeyValueListC
要素名と要素のリストを取得します
FindFileDir
指定したフォルダのファイル名を検索します
FindFileSingleDir
指定したフォルダのファイル名を検索します
FindDir
指定したフォルダにあるフォルダ名を検索します
Rename
要素名を変更します
●クラス共有変数
このクラスはクラス共有変数を持っていません。
●インスタンス変数
このクラスはインスタンス変数を持っていません。
●C++レベル追加情報
クラスID:
FGES_CLASSID_MAP
クラス名:
FGESMap
Map::#operator[]
public SubType?@ #operator[](
IString
v)depend
この連想配列の
v
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、例外が発生します。
このメソッドは最初に
v
から
INativeString
による取得を試みます。
これに失敗した場合、
v.Get
を呼び出します。
戻り値:指定した要素名の参照を返します。
IString
v
:取得する要素名
先頭へ
Map::#operator{}
public SubType?@ #operator{}(
IString
v)depend
この連想配列の
v
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、空参照を返します。
このメソッドは最初に
v
から
INativeString
による取得を試みます。
これに失敗した場合、
v.Get
を呼び出します。
戻り値:指定した要素名の参照を返します。
IString
v
:取得する要素名
先頭へ
Map::#operator={}
public SelfType<SubType>@ #operator={}(...)
この連想配列に引数として渡した要素を一括して代入します。
この連想配列が既に持っていた要素は全て削除され、引数だけで構成された連想配列になります。
引数は2つ一組で扱われ、1つ目が
IString
型の要素名、2つ目が要素型で設定する値です。
このメソッドは最初に各要素名の引数から
INativeString
による取得を試みます。
これに失敗した場合、
IString@@Get
を呼び出します。
要素の代入は
#operator=
で行われます。
要素型は
#operator=
を定義していなければいけません。
戻り値:
this
を返します。
可変長引数:代入する要素リスト。要素名、要素データ、要素名、要素データと交互に並びます。
要素データは要素型の
#operator=
で処理できる型でなければいけません。
先頭へ
Map::#operator:
public SubType?@ #operator:(
IString
v)depend
この連想配列の
v
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、例外が発生します。
このメソッドは最初に
v
から
INativeString
による取得を試みます。
これに失敗した場合、
v.Get
を呼び出します。
このメソッドは
#operator[]
と同じ動作です。
戻り値:指定した要素名の参照を返します。
IString
v
:取得する要素名
先頭へ
Map::Get
public SubType?@ Get(
IString
name)depend
この連想配列の
name
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、例外が発生します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
このメソッドは
#operator[]
と同じ動作です。
戻り値:指定した要素名の参照を返します。
IString
name
:取得する要素名
先頭へ
Map::GetTry
public SubType?@ GetTry(
IString
name)depend
この連想配列の
name
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、空参照を返します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
このメソッドは
#operator{}
と同じ動作です。
戻り値:指定した要素名の参照を返します。
IString
v
:取得する要素名
先頭へ
Map::Set
public
Bool
Set(
IString
name, SubType obj)
この連想配列の
name
の名前を持つ要素に
obj
を代入します。
このメソッドは指定した要素名が無効な場合、偽を返し何も行いません。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
要素の代入は
#operator=
で行われます。
要素型は
#operator=
を定義していなければいけません。
戻り値:代入に成功すると真を返します。
IString
name
:設定する要素名
SubType obj
:設定する値
先頭へ
Map::AllClear
public SelfType<SubType>@ AllClear()
この連想配列の全ての要素を削除します。
配列要素に割り当てられているオブジェクトも全て消滅します。
戻り値:
this
を返します。
先頭へ
Map::Erase
public
Bool
Erase(
IString
name)
この連想配列から
name
の名前を持つ要素を削除します。
削除した要素にオブジェクトが割り当てられている場合、同時に消滅します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
このメソッドは指定した要素名が無効な場合、偽を返し何も行いません。
戻り値:この呼び出しで要素が削除された場合真を返します。
IString
name
:削除する要素名
先頭へ
Map::Exists
public
Bool
Exists(
IString
name)const
この連想配列に
name
の名前を持つ要素が存在するか調べます。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
戻り値:指定した要素名の要素が存在すれば真を返します。
IString
name
:判定する要素名
先頭へ
Map::AddRef
public SelfType<SubType>@ AddRef(
IString
name)
この連想配列に
name
の名前を持つ要素を追加します。
追加された要素にはオブジェクトは割り当てられず、空参照として追加されます。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
指定した名前の要素が既に存在する場合、例外が発生します。
戻り値:
this
を返します。
IString
name
:追加する要素名
先頭へ
Map::GetAddRef
public SubType?@ GetAddRef(
IString
name)
この連想配列の
name
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、空参照を要素として追加し、それを返します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
戻り値:指定した要素名の参照を返します。
IString
name
:取得する要素名
先頭へ
Map::Add
public SubType@ Add(
IString
name)
この連想配列に
name
の名前を持つ要素を追加します。
追加された要素には要素型のオブジェクトが作成されて割り当てられます。
要素型が実体化できない型の場合、例外が発生します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
指定した名前の要素が既に存在する場合、例外が発生します。
戻り値:追加した要素の参照を返します。
IString
name
:追加する要素名
先頭へ
Map::AddAlloc
public SubType@ AddAlloc(
IString
name,
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この連想配列に
name
の名前を持つ要素を追加します。
追加された要素には
mainclass
および
subtype
によって示される型のオブジェクトが作成されて割り当てられます。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
指定した名前の要素が既に存在する場合、例外が発生します。
戻り値:追加した要素の参照を返します。
IString
name
:追加する要素名
INativeClass
mainclass
:作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Map::GetAdd
public SubType?@ GetAdd(
IString
name)
この連想配列の
name
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、要素を追加し、それを返します。
この時、追加された要素には要素型のオブジェクトが作成されて割り当てられます。
要素型が実体化できない型の場合、例外が発生します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
戻り値:指定した要素名の参照を返します。
IString
name
:取得する要素名
先頭へ
Map::GetAddAlloc
public SubType?@ GetAddAlloc(
IString
name,
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この連想配列の
name
の名前を持つ要素の参照を返します。
このメソッドは指定した要素名が無効な場合、要素を追加し、それを返します。
この時、追加された要素には
mainclass
および
subtype
によって示される型のオブジェクトが作成されて割り当てられます。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
要素が既に存在する時、既存のオブジェクトが指定された型と同一かは検証されません。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
戻り値:追加した要素の参照を返します。
IString
name
:追加する要素名
INativeClass
mainclass
:必要な場合、作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:必要な場合、作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Map::AllocObject
public SubType@ AllocObject(
IString
name,
INativeClass
mainclass,
INativeTypeObject
? subtype=NULL)
この連想配列の
name
の名前を持つ要素に新しくオブジェクトを作成して割り当てます。
指定した要素は空参照でなければいけません。
作成するオブジェクトは
mainclass
および
subtype
によって示される型になります。
指定された型のオブジェクトを作成できなかった場合や、
作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
指定した要素名が無効な場合例外が発生します。
戻り値:作成したオブジェクトの参照を返します。
IString
name
:割り当てる要素名
INativeClass
mainclass
:作成するオブジェクトのクラス。
INativeTypeObject
? subtype=NULL
:作成するオブジェクトのサブタイプ。
作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。
先頭へ
Map::FreeObject
public
Bool
FreeObject(
IString
name)
この連想配列の
name
の名前を持つ要素に割り当てられているオブジェクトを解放します。
解放されたオブジェクトは直ちに消滅し、指定した要素は空参照になります。
指定した要素が最初から空参照であった場合何も起こりません。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
指定した要素名が無効な場合例外が発生します。
戻り値:この呼び出しでオブジェクトが解放された場合真を返します。
IString
name
:解放する要素名
先頭へ
Map::SetObject
public SubType@ SetObject(
IString
name,editable SubType obj)
この連想配列の
name
の名前を持つ要素に
obj
を割り当てます。
指定した要素は空参照でなければいけません。
obj
はローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
このメソッドは
obj
のメモリ管理をこの連想配列オブジェクトの管理に変更します。
obj
が要素型の参照に参照代入できない場合例外が発生します。
このメソッドは最初に
name
から
INativeString
による取得を試みます。
これに失敗した場合、
name.Get
を呼び出します。
指定した要素名が無効な場合例外が発生します。
戻り値:割り当てたオブジェクトの参照を返します。
IString
name
:割り当てる要素名
editable SubType obj
:[移譲]設定するオブジェクト
先頭へ
Map::EachSet
public readonly SelfType<SubType>@ EachSet(editable
PMapEach
each)const
この連想配列を列挙するための列挙オブジェクトを設定します。
ここで設定した列挙オブジェクトは列挙メソッドで使用します。
戻り値:
this
を返します。
editable
PMapEach
each
:[出力]設定する列挙オブジェクト
先頭へ
Map::Keys
public
Bool
Keys(editable
INativeString
key,editable
PMapEach
each)const
この連想配列に含まれる要素名を列挙します。
each
に指定する列挙オブジェクトはこの連想配列の
EachSet
で設定されたものでなければいけません。
このメソッドを呼び出す度に、
key
に要素名が順番に格納され、列挙オブジェクトの状態が更新されます。
列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
また、最後にこのメソッドが返した要素名以外の要素を削除した場合、
全ての要素を列挙せずに列挙を終了する可能性があります。
戻り値:
key
に列挙した要素名が出力された場合、真を返します。
呼び出した時点で列挙する要素がない場合、偽を返します。
editable
INativeString
key
:[出力]列挙された要素名を出力するオブジェクト
editable
PMapEach
each
:[入出力]列挙状態を示す列挙オブジェクト
先頭へ
Map::GetKeyList
public readonly SelfType<SubType>@ GetKeyList(editable
PStringArray
list)const
この連想配列に含まれる要素名リストを取得します。
戻り値:
this
を返します。
editable
PStringArray
list
:[出力]要素名リストを出力するオブジェクト
先頭へ
Map::Values
Map::ValuesC
public
Bool
Values(editable
Pointer
<SubType> val,editable
PMapEach
each)
public
Bool
ValuesC(editable
ConstPointer
<SubType> val,editable
PMapEach
each)const
この連想配列に含まれる要素を列挙します。
each
に指定する列挙オブジェクトはこの連想配列の
EachSet
で設定されたものでなければいけません。
このメソッドを呼び出す度に、
val
に要素へのポインタが順番に格納され、列挙オブジェクトの状態が更新されます。
列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
また、最後にこのメソッドが返した要素以外の要素を削除した場合、
全ての要素を列挙せずに列挙を終了する可能性があります。
ValuesC
は
const
バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
戻り値:
val
に列挙した要素が出力された場合、真を返します。
呼び出した時点で列挙する要素がない場合、偽を返します。
editable
Pointer
<SubType> val
:[出力]列挙された要素を出力するオブジェクト
editable
ConstPointer
<SubType> val
:[出力]列挙された要素を出力するオブジェクト
editable
PMapEach
each
:[入出力]列挙状態を示す列挙オブジェクト
先頭へ
Map::GetValueList
Map::GetValueListC
public SelfType<SubType>@ GetValueList(editable
PPointerArray
<SubType> list)
public readonly SelfType<SubType>@ GetValueListC(editable
PConstPointerArray
<SubType> list)const
この連想配列に含まれる要素リストを取得します。
GetValueListC
は
const
バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
戻り値:
this
を返します。
editable
PPointerArray
<SubType> list
:[出力]要素リストを出力するオブジェクト
editable
PConstPointerArray
<SubType> list
:[出力]要素リストを出力するオブジェクト
先頭へ
Map::KeyValues
Map::KeyValuesC
public
Bool
KeyValues(editable
INativeString
key,editable
Pointer
<SubType> val,editable
PMapEach
each)
public
Bool
KeyValuesC(editable
INativeString
key,editable
ConstPointer
<SubType> val,editable
PMapEach
each)const
この連想配列に含まれる要素名と要素を列挙します。
each
に指定する列挙オブジェクトはこの連想配列の
EachSet
で設定されたものでなければいけません。
このメソッドを呼び出す度に、
key
に要素名、
val
に要素へのポインタが順番に格納され、列挙オブジェクトの状態が更新されます。
列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
また、最後にこのメソッドが返した要素名以外の要素を削除した場合、
全ての要素を列挙せずに列挙を終了する可能性があります。
KeyValuesC
は
const
バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
戻り値:各引数に列挙した要素が出力された場合、真を返します。
呼び出した時点で列挙する要素がない場合、偽を返します。
editable
INativeString
key
:[出力]列挙された要素名を出力するオブジェクト
editable
Pointer
<SubType> val
:[出力]列挙された要素を出力するオブジェクト
editable
ConstPointer
<SubType> val
:[出力]列挙された要素を出力するオブジェクト
editable
PMapEach
each
:[入出力]列挙状態を示す列挙オブジェクト
先頭へ
Map::GetKeyValueList
Map::GetKeyValueListC
public SelfType<SubType>@ GetKeyValueList(editable
PStringArray
keylist,editable
PPointerArray
<SubType> valuelist)
public readonly SelfType<SubType>@ GetKeyValueListC(editable
PStringArray
keylist,
editable
PConstPointerArray
<SubType> valuelist)const
この連想配列に含まれる要素名リストと要素リストを取得します。
KeyValuesC
は
const
バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
戻り値:
this
を返します。
editable
PStringArray
keylist
:[出力]要素名リストを出力するオブジェクト
editable
PPointerArray
<SubType> valuelist
:[出力]要素リストを出力するオブジェクト
editable
PConstPointerArray
<SubType> valuelist
:[出力]要素リストを出力するオブジェクト
先頭へ
Map::FindFileDir
public
Bool
FindFileDir(
IString
key,
IString
? path=NULL)
指定したフォルダを検索し、結果をこの連想配列に保存します。
条件に一致したファイル名を要素名として要素を作成します。
作成した要素にはオブジェクトは割り当てられず、空参照になります。
この連想配列が既に持っていた要素は全て削除され、検索結果だけで構成された連想配列になります。
このメソッドは最初に各引数から
INativeString
による取得を試みます。
これに失敗した場合、
IString@@Get
を呼び出します。
path
が空参照である場合、カレントディレクトリを検索します。
有効な参照を指定した場合、検索するディレクトリパスとして扱います。
このメソッドはサブフォルダがある場合、サブフォルダも検索します。
FGES VM
が
Protected Mode
で動作している場合、
path
は空参照でなければいけません。
この場合、検索されるのはカレントディレクトリではなく規定のフォルダです。
戻り値:処理に成功すると真を返します。
IString
key
:検索するファイル名。ワイルドカードとして解釈されます。
IString
? path=NULL
:検索するフォルダのディレクトリパス。
空参照である場合、カレントディレクトリを検索します。
先頭へ
Map::FindFileSingleDir
public
Bool
FindFileSingleDir(
IString
key,
IString
? path=NULL)
指定したフォルダを検索し、結果をこの連想配列に保存します。
条件に一致したファイル名を要素名として要素を作成します。
作成した要素にはオブジェクトは割り当てられず、空参照になります。
この連想配列が既に持っていた要素は全て削除され、検索結果だけで構成された連想配列になります。
このメソッドは最初に各引数から
INativeString
による取得を試みます。
これに失敗した場合、
IString@@Get
を呼び出します。
path
が空参照である場合、カレントディレクトリを検索します。
有効な参照を指定した場合、検索するディレクトリパスとして扱います。
このメソッドはサブフォルダがあっても、サブフォルダは検索しません。
FGES VM
が
Protected Mode
で動作している場合、
path
は空参照でなければいけません。
この場合、検索されるのはカレントディレクトリではなく規定のフォルダです。
戻り値:処理に成功すると真を返します。
IString
key
:検索するファイル名。ワイルドカードとして解釈されます。
IString
? path=NULL
:検索するフォルダのディレクトリパス。
空参照である場合、カレントディレクトリを検索します。
先頭へ
Map::FindDir
public
Bool
FindDir(
IString
key,
IString
? path=NULL)
指定したフォルダを検索し、結果をこの連想配列に保存します。
条件に一致したフォルダ名を要素名として要素を作成します(ファイルは除外されます)。
作成した要素にはオブジェクトは割り当てられず、空参照になります。
この連想配列が既に持っていた要素は全て削除され、検索結果だけで構成された連想配列になります。
このメソッドは最初に各引数から
INativeString
による取得を試みます。
これに失敗した場合、
IString@@Get
を呼び出します。
path
が空参照である場合、カレントディレクトリを検索します。
有効な参照を指定した場合、検索するディレクトリパスとして扱います。
このメソッドはサブフォルダは検索しません。
FGES VM
が
Protected Mode
で動作している場合、
path
は空参照でなければいけません。
この場合、検索されるのはカレントディレクトリではなく規定のフォルダです。
戻り値:処理に成功すると真を返します。
IString
key
:検索するフォルダ名。ワイルドカードとして解釈されます。
IString
? path=NULL
:検索するフォルダのディレクトリパス。
空参照である場合、カレントディレクトリを検索します。
先頭へ
Map::Rename
public
Bool
Rename(
IString
oldname,
IString
newname)
この連想配列の
oldname
の名前を持つ要素の名前を
newname
に変更します。
このメソッドは
oldname
に指定した要素名が無効な場合や
newname
に指定した要素名が既に存在する場合失敗します。
このメソッドは最初に各引数から
INativeString
による取得を試みます。
これに失敗した場合、
IString@@Get
を呼び出します。
このメソッドを呼び出すと列挙オブジェクトが無効になる可能性があります。
列挙中にこのメソッドを使用することは推奨されません。
戻り値:名前の変更に成功すると真を返します。
IString
oldname
:名前変更する要素名
IString
newname
:新しい要素名
先頭へ
[前へ]
[目次へ]
[次へ]
最終更新 2021/03/06