|
TNB Library
|
HASH値保持テンプレートクラス. [詳解]
#include <TnbHashable.h>
CHashableT< TYP > の継承関係図公開メンバ関数 | |
| const TYP & | At (void) const |
| [取得] 値参照取得 [詳解] | |
| CHashableT (const CHashableT< TYP > &t) | |
| コピーコンストラクタ [詳解] | |
| CHashableT (const TYP &t) | |
| [代入] 代入コンストラクタ [詳解] | |
| CHashableT (void) | |
| コンストラクタ. [詳解] | |
| virtual INT_PTR | Compare (const CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| virtual void | Deserialize (const IDeserializer &ds) |
| [処理] デシリアライズ. [詳解] | |
| DWORD | GetHashCode (void) const |
| [取得] HASH値取得 [詳解] | |
| virtual bool | IsEqual (const CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| operator const TYP & (void) const | |
| [取得] 値参照取得 [詳解] | |
| bool | operator!= (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| INT_PTR | operator- (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| bool | operator< (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| bool | operator<= (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| CHashableT & | operator= (const CHashableT< TYP > &other) |
| [代入] コピーオペレータ [詳解] | |
| CHashableT & | operator= (const TYP &t) |
| [代入] 代入オペレータ [詳解] | |
| bool | operator== (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| bool | operator> (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| bool | operator>= (const TNB::CHashableT< TYP > &t) const |
| [確認] 比較 [詳解] | |
| virtual void | Serialize (ISerializer &_sr) const |
| [処理] シリアライズ. [詳解] | |
HASH値保持テンプレートクラス.
通常のオブジェクトにHASH値を付加するテンプレートです。主に、大きな型をコレクションで 使用する場合、ハッシュを付加することで、検索速度UPが期待できます。
プロセス実行中に、変化のないオブジェクトは、一定の整数を返す。
同じ内容のオブジェクトでも、異なるプロセスなら同じ整数とは限らない。
2つのオブジェクトの内容が異なる場合、それぞれのハッシュ値は必ず一致しない。
2つのオブジェクトの内容が同じ場合でも、それぞれのハッシュ値が一致するとは限らない。
ただし、極力同じ値になるようなハッシュ値であることが好ましい。
異なる型同士では、ハッシュ値は意味を持たない。
|
CVectorT< CHashableT<CStr> > vhstr; //宣言
;
int f1 = vhstr.Find(CStr("ABCDE"));
|
namespace TNB
{
namespace HASH
{
// ハッシュ値計算.
inline DWORD CalcHash(const TFoo& str)
{ 〜 }
};
};
|
| TYP | 要素の型。 |
TnbHashable.h の 80 行目に定義があります。
| CHashableT | ( | void | ) |
コンストラクタ.
TnbHashable.h の 90 行目に定義があります。
| CHashableT | ( | const CHashableT< TYP > & | t | ) |
| CHashableT | ( | const TYP & | t | ) |
| const TYP & At | ( | void | ) | const |
|
virtual |
[確認] 比較
| t | 比較対象 |
| 0 | 自分は t と同じ |
| 1以上 | 自分は t より大きい |
| 0未満 | 自分は t より小さい |
IComparableT< TNB::CHashableT< TYP > >を実装しています。
TnbHashable.h の 155 行目に定義があります。
|
virtual |
[処理] デシリアライズ.
| [in] | ds | デシリアライザー |
ISerializableを実装しています。
TnbHashable.h の 209 行目に定義があります。
| DWORD GetHashCode | ( | void | ) | const |
|
virtual |
[確認] 比較
| t | 比較対象 |
| true | 自分は t と同じ |
| false | 自分は t と異なる |
IComparableT< TNB::CHashableT< TYP > >を再実装しています。
TnbHashable.h の 167 行目に定義があります。
| operator const TYP & | ( | void | ) | const |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| CHashableT & operator= | ( | const CHashableT< TYP > & | other | ) |
| CHashableT & operator= | ( | const TYP & | t | ) |
|
inherited |
|
inherited |
|
inherited |
|
virtual |
[処理] シリアライズ.
| [out] | _sr | シリアライザー |
ISerializableを実装しています。
TnbHashable.h の 199 行目に定義があります。