SophiaFramework UNIVERSE 5.3 |
SFXLinkedHashMap クラスは、 キーと値のペア要素を持つハッシュマップを操作するためのデータ構造です。
SFXLinkedHashMap クラスは、 ペア要素の追加順の双方向リンクリストを内部に保持しています。 その結果、SFXLinkedHashMap クラスは、 全般的に SFXFlatHashMap クラスよりもハイパフォーマンスです。
注意 | |
---|---|
SFXFlatHashMap クラスでは、 ペア要素の双方向リンクリストを内部に保持しません。 |
SFXHashmap は、SFXLinkedHashMap の別名です。 SophiaFramework UNIVERSE 5.1.8 以前の SFXHashmap(現 SFXOldHashmap)の代替クラスとして作成されました。 要素数が多い場合のリハッシュ、マージ、比較のパフォーマンスが大幅に改善されています。
ペア要素のキーと値は 4 バイト以下のデータでなければいけません。 5 バイト以上の SInt64 / UInt64 / Float64 型などのデータや、 クラスインスタンスをペア要素のキーや値にしたい場合はポインタを利用します。
ただし、ペア要素のキーには、 文字列(SFXAnsiString / SFXWideString)を格納できます。 この場合、要素毎の文字列のヒープの確保と解放はこのクラス内部で自動的に行われます。
ハッシュテーブルの大きさに対して要素の占有率が 45 % を超えると、 自動的にハッシュテーブルはリ拡張されてハッシュされます。
// 5 バイト以上のデータやクラスインスタンスは、ペア要素の値に格納できない // ※文字列は、ペア要素のキーに格納できる // SFXLinkedHashMap<SFXAnsiString, SInt64> map64; NG // SFXLinkedHashMap<SFXAnsiString, SFXAnsiString> mapstr; NG // ポインタはペア要素の値に格納できる // 5 バイト以上のデータをペア要素の値にしたい場合は、ポインタを利用する SFXLinkedHashMap<SFXAnsiString, SInt64Ptr> map64; // OK SFXLinkedHashMap<SFXAnsiString, SFXAnsiStringPtr> mapstr; // OK
SFXHashmap | SFXFlatHashMap | SFXAnsiString | SFXWideString | ハッシュマップ
コンストラクタ/デストラクタ |
---|
SFXLinkedHashMap( Void ) SFXLinkedHashMap クラスのコンストラクタです。
|
SFXLinkedHashMap(
UInt16 threshold
, UInt16 ratio
) SFXLinkedHashMap クラスのコンストラクタです。
|
パブリック関数 | |
---|---|
Void |
Clear( Void ) ハッシュマップを空にします。
|
Bool |
ContainsKey(
KeyType key
) 指定されたキーを持つペア要素が含まれるか判定します。
|
Bool |
ContainsValue(
ValueType value
) 指定された値を持つペア要素が含まれるか判定します。
|
static SFXLinkedHashMap< K, V > const & |
EmptyInstance( Void ) 空のハッシュマップを取得します。
|
Bool |
Equals(
SFXLinkedHashMap< K, V > const & collection
) 指定されたハッシュマップと等しいか判定します。
|
ValueType |
Get(
KeyType key
, BoolPtr found = null
) 指定されたキーを持つペア要素の値を取得します。
|
KeyEnumerator |
GetFirstKeyEnumerator( Void ) ハッシュマップの最初のペア要素のキーに対応するキー列挙子を取得します。
|
KeyIterator |
GetFirstKeyIterator( Void ) ハッシュマップの最初のペア要素のキーに対応するキー反復子を取得します。
|
ValueEnumerator |
GetFirstValueEnumerator( Void ) ハッシュマップの最初のペア要素の値に対応する値列挙子を取得します。
|
ValueIterator |
GetFirstValueIterator( Void ) ハッシュマップの最初のペア要素の値に対応する反復子を取得します。
|
KeyEnumerator |
GetKeyEnumerator(
SInt32 index
) ハッシュマップのペア要素のキーに対応するキー列挙子を取得します。
|
KeyEnumerator |
GetKeyEnumerator( Void ) ハッシュマップのペア要素のキーに対応するキー列挙子を取得します。
|
KeyIterator |
GetKeyIterator(
SInt32 index
) ハッシュマップのペア要素のキーに対応するキー反復子を取得します。
|
KeyIterator |
GetKeyIterator( Void ) ハッシュマップのペア要素のキーに対応するキー反復子を取得します。
|
KeyEnumerator |
GetLastKeyEnumerator( Void ) ハッシュマップの最後のペア要素のキーに対応するキー列挙子を取得します。
|
KeyIterator |
GetLastKeyIterator( Void ) ハッシュマップの最後のペア要素のキーに対応するキー反復子を取得します。
|
ValueEnumerator |
GetLastValueEnumerator( Void ) ハッシュマップの最後のペア要素の値に対応する値列挙子を取得します。
|
ValueIterator |
GetLastValueIterator( Void ) ハッシュマップの最後のペア要素の値に対応する値反復子を取得します。
|
UInt16 |
GetRatio( Void ) [廃止予定] ハッシュテーブルの大きさを拡張する割合を取得します。
|
SInt32 |
GetSize( Void ) ハッシュマップのサイズを取得します。
|
UInt16 |
GetThreshold( Void ) [廃止予定] ハッシュテーブルの大きさを拡張する閾値を取得します。
|
ValueEnumerator |
GetValueEnumerator(
SInt32 index
) ハッシュマップのペア要素の値に対応する値列挙子を取得します。
|
ValueEnumerator |
GetValueEnumerator( Void ) ハッシュマップのペア要素の値に対応する値列挙子を取得します。
|
ValueIterator |
GetValueIterator(
SInt32 index
) ハッシュマップのペア要素の値に対応する値反復子を取得します。
|
ValueIterator |
GetValueIterator( Void ) ハッシュマップのペア要素の値に対応する値反復子を取得します。
|
Bool |
IsEmpty( Void ) ハッシュマップが空であるか判定します。
|
SFCError |
Merge(
SFXLinkedHashMap< K, V > const & collection
) ハッシュマップを統合します。
|
Void |
Remove(
KeyType key
) 指定されたキーを持つペア要素を削除します。
|
SFCError |
Set(
SFXLinkedHashMap< K, V > const & collection
) 指定されたペア要素(キーと値のペア)を設定します。またはハッシュマップを設定します。
|
SFCError |
Set(
KeyType key
, ValueType value
) 指定されたペア要素(キーと値のペア)を設定します。またはハッシュマップを設定します。
|
Void |
SetRatio(
UInt16 param
) [廃止予定] ハッシュテーブルの大きさを拡張する割合を設定します。
|
Void |
SetThreshold(
UInt16 param
) [廃止予定] ハッシュテーブルの大きさを拡張する閾値を設定します。
|
SFCError |
Swap(
KeyType destination
, KeyType source
) 指定されたキーを持つペア要素の値を交換します。
|
ValueType |
operator[](
KeyType key
) 指定されたキーを持つペア要素の値を取得します。
|
型 |
---|
KeyEnumerator ハッシュマップのペア要素のキーに対応するキー列挙子を保持するクラスです。
|
KeyIterator ハッシュマップのペア要素のキーに対応するキー反復子を保持するクラスです。
|
ValueEnumerator ハッシュマップのペア要素の値に対応する値列挙子を保持するクラスです。
|
ValueIterator ハッシュマップのペア要素の値に対応する値反復子を保持するクラスです。
|
[ public, explicit ] SFXLinkedHashMap(Void);
[ public, explicit ] SFXLinkedHashMap( UInt16 threshold // 指定しても使用されません UInt16 ratio // 指定しても使用されません );
デフォルトの実装は、何も行いません。
廃止予定 | |
---|---|
引数付きのコンストラクタは、SFXOldHashmap クラスとの互換性のためだけに存在します。 SophiaFramework UNIVERSE 6.0 で廃止されますので、明示的に使用しないことを推奨します。 |
[ public ] Void Clear(Void);
この関数は、このハッシュマップを空にします。 このハッシュマップに割り当てられていたメモリ領域は解放されます。
この関数を実行した後、ハッシュマップのサイズは 0 になります。
キーが文字列(SFXAnsiString / SFXWideString 型)である場合、 キーである文字列も自動的に解放されます。
注意 | |
---|---|
キーや値がクラスインスタンスや 4 バイトよりも大きなデータへのポインタの場合、 ポインタが指すメモリ領域は解放されません。 ハッシュマップをクリアする前に、 delete 文を使用して明示的にその領域を解放する必要があります。 さもなければ、メモリリークが発生します。 |
注意 | |
---|---|
この関数は、このハッシュマップがスコープから外れるタイミングで自動的に呼び出されます。 |
SFXLinkedHashMap<SFXAnsiString, SInt32> strmap;
...
strmap.Clear(); // ハッシュマップを空にする
[ public, const ] Bool ContainsKey( KeyType key // 存在するか調べるキー );
この関数は、このハッシュマップに指定されたキーを持つペア要素(キーと値)が含まれるか判定します。
SFXLinkedHashMap<SFXAnsiString, SInt32> strmap; // キーと値からなるハッシュマップ要素を設定する if (strmap.Set("mike", 2) == SFERR_NO_ERROR) { // キーと値からなるハッシュマップ要素を設定する if (strmap.Set("john", 1) == SFERR_NO_ERROR) { // 指定したキーが含まれるか判定する TRACE("ContainsKey(\"mike\") = %s", (strmap.ContainsKey("mike")) ? ("true") : ("false")); // ContainsKey("mike") = true TRACE("ContainsKey(\"tom\") = %s", (strmap.ContainsKey("tom")) ? ("true") : ("false")); // ContainsKey("tom") = false } }
[ public, const ] ValueType Get( KeyType key // 取得する値を持つペア要素のキー BoolPtr found = null // キーの有無 );
このハッシュマップに指定されたキーを持つペア要素があれば、ペア要素の値を返します。
存在しない場合は、null または 0 を返します。
この関数は、このハッシュマップ内の指定されたキーを持つペア要素の値を取得します。
指定されたキーを持つペア要素が存在する場合、第 2 引数 found に true が渡されます。 そうでない場合は、false が渡されます。
注意 | |
---|---|
指定されたキーを持つペア要素が存在しない場合、エラーは発生せず、 この関数は 0 または null を返します。 |
SFXLinkedHashMap<SFXAnsiString, SInt32> strmap; // キーと値からなるハッシュマップ要素を設定する if (strmap.Set("mike", 2) == SFERR_NO_ERROR) { // キーと値からなるハッシュマップ要素を設定する if (strmap.Set("john", 1) == SFERR_NO_ERROR) { // 指定したキーに対する値を取得する TRACE("%d", strmap.Get("mike")); // 2 } }
[ public, const ] KeyEnumerator GetFirstKeyEnumerator(Void);
このハッシュマップの最初のペア要素のキーに対応するキー列挙子
この関数は、このハッシュマップの最初のペア要素のキーに対応するキー列挙子を取得します。
SFXLinkedHashMap::GetFirstKeyIterator | SFXLinkedHashMap::GetFirstValueIterator | SFXLinkedHashMap::GetFirstValueEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public ] KeyIterator GetFirstKeyIterator(Void);
このハッシュマップの最初のペア要素のキーに対応するキー反復子
この関数は、このハッシュマップの最初のペア要素のキーに対応するキー反復子を取得します。
SFXLinkedHashMap::GetFirstKeyEnumerator | SFXLinkedHashMap::GetFirstValueEnumerator | SFXLinkedHashMap::GetFirstValueIterator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public, const ] ValueEnumerator GetFirstValueEnumerator(Void);
このハッシュマップの最初のペア要素の値に対応する値列挙子
この関数は、このハッシュマップの最初のペア要素の値に対応する値列挙子を取得します。
SFXLinkedHashMap::GetFirstValueIterator | SFXLinkedHashMap::GetFirstKeyIterator | SFXLinkedHashMap::GetFirstKeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public ] ValueIterator GetFirstValueIterator(Void);
このハッシュマップの最初のペア要素の値に対応する反復子
この関数は、このハッシュマップの最初のペア要素の値に対応する反復子を取得します。
SFXLinkedHashMap::GetFirstValueEnumerator | SFXLinkedHashMap::GetFirstKeyIterator | SFXLinkedHashMap::GetFirstKeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public, const ] KeyEnumerator GetKeyEnumerator( SInt32 index // キー列挙子の開始位置 );
[ public, const ] KeyEnumerator GetKeyEnumerator(Void);
このハッシュマップのペア要素のキーに対応するキー列挙子
この関数は、指定された開始位置のペア要素のキーに対応するキー列挙子を取得します。
注意 | |
---|---|
引数に 0 以下の値を指定した場合、 この関数は SFXLinkedHashMap::GetFirstKeyEnumerator 関数と同等です。 引数にこのハッシュマップのサイズ以上の値を指定した場合、 この関数は SFXLinkedHashMap::GetLastValueIterator 関数と同等です。 |
index 引数を指定しない場合は、このハッシュマップの最初のペア要素のキーに対応するキー列挙子を取得します。 この場合、この関数は SFXLinkedHashMap::GetFirstKeyEnumerator 関数と同等です。
SFXLinkedHashMap::GetFirstKeyEnumerator | SFXLinkedHashMap::GetLastKeyEnumerator | SFXLinkedHashMap::GetKeyIterator | SFXLinkedHashMap::GetValueIterator | SFXLinkedHashMap::GetValueEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public ] KeyIterator GetKeyIterator( SInt32 index // キー反復子の開始位置 );
[ public ] KeyIterator GetKeyIterator(Void);
このハッシュマップのペア要素のキーに対応するキー反復子
この関数は、指定された開始位置のペア要素のキーに対応するキー反復子を取得します。
index 引数を指定しない場合は、このハッシュマップの最初のペア要素のキーに対応するキー反復子を取得します。 この場合、この関数は SFXLinkedHashMap::GetFirstKeyIterator 関数と同等です。
SFXLinkedHashMap::GetFirstKeyIterator | SFXLinkedHashMap::GetKeyEnumerator | SFXLinkedHashMap::GetValueEnumerator | SFXLinkedHashMap::GetValueIterator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public, const ] KeyEnumerator GetLastKeyEnumerator(Void);
このハッシュマップの最後のペア要素のキーに対応するキー列挙子
この関数は、このハッシュマップの最後のペア要素のキーに対応するキー列挙子を取得します。
SFXLinkedHashMap::GetLastKeyIterator | SFXLinkedHashMap::GetLastValueIterator | SFXLinkedHashMap::GetLastValueEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public ] KeyIterator GetLastKeyIterator(Void);
このハッシュマップの最後のペア要素のキーに対応するキー反復子
この関数は、このハッシュマップの最後のペア要素のキーに対応するキー反復子を取得します。
SFXLinkedHashMap::GetLastKeyEnumerator | SFXLinkedHashMap::GetLastValueEnumerator | SFXLinkedHashMap::GetLastValueIterator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public, const ] ValueEnumerator GetLastValueEnumerator(Void);
このハッシュマップの最後のペア要素の値に対応する値列挙子
この関数は、このハッシュマップの最後のペア要素の値に対応する値列挙子を取得します。
SFXLinkedHashMap::GetLastValueIterator | SFXLinkedHashMap::GetLastKeyIterator | SFXLinkedHashMap::GetLastKeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public ] ValueIterator GetLastValueIterator(Void);
このハッシュマップの最後のペア要素の値に対応する値反復子
この関数は、このハッシュマップの最後のペア要素の値に対応する値反復子を取得します。
SFXLinkedHashMap::GetLastValueEnumerator | SFXLinkedHashMap::GetLastKeyIterator | SFXLinkedHashMap::GetLastKeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public, const ] UInt16 GetRatio(Void);
常に 0 を返します。
この関数は、常に 0 を返します。
この API は、 SFXOldHashmap (SophiaFramework UNIVERSE 5.1.8 以前は SFXHashmap という名前だった) クラスとの互換性のためだけに存在します。
廃止予定 | |
---|---|
SophiaFramework UNIVERSE 6.0 で廃止されますので、使用しないことを推奨します。 |
[ public, const ] SInt32 GetSize(Void);
このハッシュマップのサイズ(ペア要素の数)。
この関数は、このハッシュマップのサイズ(ペア要素の数)を取得します。
[ public, const ] UInt16 GetThreshold(Void);
常に 45 (単位: %)を返します。
この関数は、常に 45 (単位: %)を返します。
この API は、 SFXOldHashmap (SophiaFramework UNIVERSE 5.1.8 以前は SFXHashmap という名前だった) クラスとの互換性のためだけに存在します。
廃止予定 | |
---|---|
SophiaFramework UNIVERSE 6.0 で廃止されますので、使用しないことを推奨します。 |
[ public, const ] ValueEnumerator GetValueEnumerator( SInt32 index // 値列挙子の開始位置 );
[ public, const ] ValueEnumerator GetValueEnumerator(Void);
このハッシュマップのペア要素の値に対応する値列挙子
この関数は、指定された開始位置のペア要素の値に対応する値列挙子を取得します。
注意 | |
---|---|
引数に 0 以下の値を指定した場合、 この関数は SFXLinkedHashMap::GetFirstValueEnumerator 関数と同等です。 引数にこのハッシュマップのサイズ以上の値を指定した場合、 この関数は SFXLinkedHashMap::GetLastValueEnumerator 関数と同等です。 |
index 引数を指定しない場合は、このハッシュマップの最初のペア要素の値に対応する値列挙子を取得します。 この場合、この関数は SFXLinkedHashMap::GetFirstValueEnumerator 関数と同等です。
SFXLinkedHashMap::GetFirstValueEnumerator | SFXLinkedHashMap::GetLastValueEnumerator | SFXLinkedHashMap::GetValueIterator | SFXLinkedHashMap::GetKeyIterator | SFXLinkedHashMap::GetKeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public ] ValueIterator GetValueIterator( SInt32 index // 値反復子の開始位置 );
[ public ] ValueIterator GetValueIterator(Void);
このハッシュマップのペア要素の値に対応する値反復子
この関数は、指定された開始位置のペア要素の値に対応する値反復子を取得します。
注意 | |
---|---|
引数に 0 以下の値を指定した場合、 この関数は SFXLinkedHashMap::GetFirstValueIterator 関数と同等です。 引数にこのハッシュマップのサイズ以上の値を指定した場合、 この関数は SFXLinkedHashMap::GetLastValueIterator 関数と同等です。 |
index 引数を指定しない場合は、このハッシュマップの最初のペア要素の値に対応する値反復子を取得します。 この場合、この関数は SFXLinkedHashMap::GetFirstValueIterator 関数と同等です。
SFXLinkedHashMap::GetFirstValueIterator | SFXLinkedHashMap::GetLastValueIterator | SFXLinkedHashMap::GetValueEnumerator | SFXLinkedHashMap::GetKeyIterator | SFXLinkedHashMap::GetKeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator
[ public, const ] Bool IsEmpty(Void);
この関数は、このハッシュマップが空であるか判定します。
[ public ] SFCError Merge( SFXLinkedHashMap< K, V > const & collection // 統合するハッシュマップ );
この関数は、このハッシュマップと指定されたハッシュマップを統合します。
※処理中にエラーが発生した場合は、元の状態に戻します。
[ public ] Void Remove( KeyType key // 削除するペア要素のキー );
この関数は、このハッシュマップから指定したキーを持つペア要素(キーと値)を削除します。
キーが文字列(SFXAnsiString / SFXWideString 型)である場合、 キーである文字列も自動的に解放されます。
注意 | |
---|---|
キーや値がクラスインスタンスや 4 バイトよりも大きなデータへのポインタの場合、 ポインタが指すデータは自動的に解放されません。 それらのデータは、ハッシュマップをクリアする直前に、 delete 文を使用して明示的に解放する必要があります。 さもなければ、メモリリークが発生します。 |
[ public ] SFCError Set( SFXLinkedHashMap< K, V > const & collection // 設定するハッシュマップ );
[ public ] SFCError Set( KeyType key // 設定するキー ValueType value // 設定する値 );
この関数は、指定されたペア要素(キーと値のペア)をこのハッシュマップに設定します。 またはこのハッシュマップを指定されたハッシュマップに設定します。
※処理中にエラーが発生した場合は、元の状態に戻します。
空文字列 | |
---|---|
空文字列とは、 SFXAnsiString::EmptyInstance / SFXWideString::EmptyInstance 関数の戻り値のことです。 |
SFXLinkedHashMap<SFXAnsiString, SInt32> strmap; // 要素(キーと値のペア)を設定する if (strmap.Set("mike", 2) == SFERR_NO_ERROR) { // 要素(キーと値のペア)を設定する if (strmap.Set("john", 1) == SFERR_NO_ERROR) { // 指定したキーを持つ要素(キーと値のペア)が存在するか判定する TRACE("ContainsKey(\"mike\") = %s", (strmap.ContainsKey("mike")) ? ("true") : ("false")); // ContainsKey("mike") = true TRACE("ContainsKey(\"tom\") = %s", (strmap.ContainsKey("tom")) ? ("true") : ("false")); // ContainsKey("tom") = false } }
SFXLinkedHashMap::Get | SFXLinkedHashMap::operator[] | SFXAnsiString::EmptyInstance | SFXWideString::EmptyInstance
この関数は、何も行いません。 指定された値は、SFXLinkedHashMap クラス内で使用されません。
この API は、 SFXOldHashmap (SophiaFramework UNIVERSE 5.1.8 以前は SFXHashmap という名前だった) クラスとの互換性のためだけに存在します。
廃止予定 | |
---|---|
SophiaFramework UNIVERSE 6.0 で廃止されますので、使用しないことを推奨します。 |
この関数は、何も行いません。 指定された値は、SFXLinkedHashMap クラス内で使用されません。
この API は、 SFXOldHashmap (SophiaFramework UNIVERSE 5.1.8 以前は SFXHashmap という名前だった) クラスとの互換性のためだけに存在します。
廃止予定 | |
---|---|
SophiaFramework UNIVERSE 6.0 で廃止されますので、使用しないことを推奨します。 |
[ public ] SFCError Swap( KeyType destination // 交換先のキー KeyType source // 交換元のキー );
この関数は、指定したキーを持つペア要素の値を交換します。
SFXLinkedHashMap<SFXAnsiString, SInt32> strmap; // ペア要素 (キー: "mike", 値: 2) を設定する if (strmap.Set("mike", 2) == SFERR_NO_ERROR) { // ペア要素 (キー: "john", 値: 1) を設定する if (strmap.Set("john", 1) == SFERR_NO_ERROR) { // 2 つのペア要素の値を交換する if (strmap.Swap("mike", "john") == SFERR_NO_ERROR) { // "mike" をキーに持つペア要素の値をデバッグウィンドウに表示する TRACE("%d", strmap.Get("mike")); // 1 } } }
[ public, const ] Bool ContainsValue( ValueType value // 存在するか調べる値 );
この関数は、このハッシュマップに指定された値を持つペア要素(キーと値)が含まれるか判定します。
SFXLinkedHashMap<SFXAnsiString, SInt32> strmap; // キーと値からなるハッシュマップ要素を設定する if (strmap.Set("mike", 2) == SFERR_NO_ERROR) { // キーと値からなるハッシュマップ要素を設定する if (strmap.Set("john", 1) == SFERR_NO_ERROR) { // 指定した値が含まれるか判定する TRACE("ContainsValue(2) = %s", (strmap.ContainsValue(2)) ? ("true") : ("false")); // ContainsValue(2) = true TRACE("ContainsValue(5) = %s", (strmap.ContainsValue(5)) ? ("true") : ("false")); // ContainsValue(5) = false } }
[ public, static ] SFXLinkedHashMap< K, V > const & EmptyInstance(Void);
空のハッシュマップを表すインスタンス。
この関数は、空のハッシュマップを表すインスタンスを取得します。
[ public, const ] Bool Equals( SFXLinkedHashMap< K, V > const & collection // 比較するハッシュマップ );
この関数は、このハッシュマップが指定されたハッシュマップと等しいか判定します。
具体的には、2 つのハッシュマップに同じペア要素(キーと値)が同じ順序で格納されているか調べます。
注意 | |
---|---|
キーまたは値がポインタである場合、ポインタのアドレス値だけを比較します。 |
[ public, const ] ValueType operator[]( KeyType key // 取得するキーの位置 );
指定したキーに対するマッピングが存在すればその値を返します。
存在しない場合は、null または 0 を返します。
このオペレーターは、このハッシュマップ内の指定したキーを持つペア要素の値を取得します。
注意 | |
---|---|
指定したキーを持つペア要素が存在しない場合、エラーは発生せず、 このオペレーターは 0 または null を返します。 |
[ public ] SFMTYPEDEFCLASS(KeyEnumerator) class KeyEnumerator { public: explicit KeyEnumerator (Void); KeyEnumerator (KeyIteratorConstRef iterator); KeyEnumeratorRef operator= (KeyIteratorConstRef iterator); KeyType GetNext (Void); KeyType GetPrevious (Void); ValueType GetValue (Void) const; Bool HasNext (Void) const; Bool HasPrevious (Void) const; Bool IsValid (Void) const; };
このクラスは、ハッシュマップのペア要素のキーに対応するキー列挙子を保持するクラスです。
GetNext | 次の要素を取得します。要素がない場合 null または 0 を返します。 |
GetPrevious | 前の要素を取得します。要素がない場合 null または 0 を返します。 |
GetValue | 現在の要素に対する値を取得します。無効な場合は null を返します。 |
HasNext | 次の要素があるか調べます。 |
HasPrevious | 前の要素があるか調べます。 |
IsValid | 列挙子が有効であるか判定します。 |
SFXLinkedHashMap::KeyIterator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::GetKeyEnumerator | SFXLinkedHashMap::GetKeyIterator | SFXLinkedHashMap::GetValueEnumerator | SFXLinkedHashMap::GetValueIterator
[ public ] SFMTYPEDEFCLASS(KeyIterator) class KeyIterator { public: explicit KeyIterator (Void); SFCError SetValue (ValueType value); KeyType GetNext (Void); KeyType GetPrevious (Void); ValueType GetValue (Void) const; Bool HasNext (Void) const; Bool HasPrevious (Void) const; Bool IsValid (Void) const; SFCError Insert (KeyType key, ValueType value); Void Remove (Void); };
このクラスは、ハッシュマップのペア要素のキーに対応するキー反復子を保持するクラスです。
SetValue | 反復子が指す要素に対する値の内容を指定した値で設定します。 |
GetNext | 次の要素を取得します。要素がない場合 null または 0 を返します。 |
GetPrevious | 前の要素を取得します。要素がない場合 null または 0 を返します。 |
GetValue | 現在の要素に対する値を取得します。無効な場合は null を返します。 |
HasNext | 次の要素があるか調べます。 |
HasPrevious | 前の要素があるか調べます。 |
IsValid | 反復子が有効であるか判定します。 |
Insert | 反復子が指す要素の次に要素を挿入します。 |
Remove | 反復子が指す要素を削除します。 |
SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::ValueEnumerator | SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::GetKeyEnumerator | SFXLinkedHashMap::GetKeyIterator | SFXLinkedHashMap::GetValueEnumerator | SFXLinkedHashMap::GetValueIterator
[ public ] SFMTYPEDEFCLASS(ValueEnumerator) class ValueEnumerator { public: explicit ValueEnumerator (Void); ValueEnumerator (ValueIteratorConstRef iterator); ValueEnumeratorRef operator= (ValueIteratorConstRef iterator); ValueType GetNext (Void); ValueType GetPrevious (Void); KeyType GetKey (Void) const; Bool HasNext (Void) const; Bool HasPrevious (Void) const; Bool IsValid (Void) const; };
このクラスは、ハッシュマップのペア要素の値に対応する値列挙子を保持するクラスです。
GetNext | 次の要素を取得します。要素がない場合 null または 0 を返します。 |
GetPrevious | 前の要素を取得します。要素がない場合 null または 0 を返します。 |
GetKey | 現在の要素に対するキーを取得します。無効な場合は null を返します。 |
HasNext | 次の要素があるか調べます。 |
HasPrevious | 前の要素があるか調べます。 |
IsValid | 列挙子が有効であるか判定します。 |
SFXLinkedHashMap::ValueIterator | SFXLinkedHashMap::KeyEnumerator | SFXLinkedHashMap::KeyIterator | SFXLinkedHashMap::GetKeyEnumerator | SFXLinkedHashMap::GetKeyIterator | SFXLinkedHashMap::GetValueEnumerator | SFXLinkedHashMap::GetValueIterator
[ public ] SFMTYPEDEFCLASS(ValueIterator) class ValueIterator { public: explicit ValueIterator (Void); SFCError Set (ValueType value); ValueType GetNext (Void); ValueType GetPrevious (Void); KeyType GetKey (Void) const; Bool HasNext (Void) const; Bool HasPrevious (Void) const; Bool IsValid (Void) const; SFCError Insert (KeyType key, ValueType value); Void Remove (Void); };
このクラスは、ハッシュマップのペア要素の値に対応する値反復子を保持するクラスです。
Set | 反復子が指す要素に対する値の内容を指定した値で設定します。 |
GetNext | 次の要素を取得します。要素がない場合 null または 0 を返します。 |
GetPrevious | 前の要素を取得します。要素がない場合 null または 0 を返します。 |
GetKey | 現在の要素に対するキーを取得します。無効な場合は null を返します。 |
HasNext | 次の要素があるか調べます。 |
HasPrevious | 前の要素があるか調べます。 |
IsValid | 反復子が有効であるか判定します。 |
Insert | 反復子が指す要素の次に要素を挿入します。 |
Remove | 反復子が指す要素を削除します。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |