mqsdx  300.0.0
MQPluginSDK Extention Library / mqsdkをC++またはCLI(.Net)拡張するサポートライブラリ。
 全て クラス 関数 変数 プロパティ グループ ページ
構造体 テンプレート MQ0x::CollectionHashCode< T_OUT, default_seed >

組込型配列からハッシュコードを生成するクラス [詳細]

#include <MQ0x.hpp>

Public メソッド

 CollectionHashCode (const T_OUT seed=defaultSeed)
 デフォルトコンストラクタ
 
template<typename T_IN >
 CollectionHashCode (const T_IN *pSrc, const size_t ct, const T_OUT seed=defaultSeed)
 配列の先頭ポインタと個数を指定してハッシュコードを生成 [詳細]
 
 CollectionHashCode (const char *pSrc, const T_OUT seed=defaultSeed)
 文字列を指定してハッシュコードを生成 [詳細]
 
 CollectionHashCode (const wchar_t *pSrc, const T_OUT seed=defaultSeed)
 ワイド文字列を指定してハッシュコードを生成 [詳細]
 
 operator T_OUT ()
 暗黙のキャストを介して戻り値を取得
 

Static Public メソッド

template<typename T_IN >
static CollectionHashCode FromTrailCodeCollection (const T_IN *pSrc, const T_IN trailCode, const T_OUT seed=defaultSeed)
 配列の先頭ポインタと配列の終端値を指定してハッシュコードを生成 [詳細]
 

Static Public 変数

static const T_OUT defaultSeed = (T_OUT)default_seed
 T_OUTにキャストされたデフォルトの初期値
 

説明

template<typename T_OUT, const size_t default_seed = 17>
struct MQ0x::CollectionHashCode< T_OUT, default_seed >

組込型配列からハッシュコードを生成するクラス

Template Parameters
T_OUTハッシュコードの戻り値型を指定
default_seedハッシュコードのデフォルトの初期値を指定。省略時は整数の17を使用します。
// 文字列のハッシュコードを取得する
DWORD hashOfString = CollectionHashCode<DWORD>("ソース配列(文字列)");
// short配列のハッシュコードを取得する
const short array[] = { 0, 1, 2, 3 };
unsigned int hashOfString = CollectionHashCode<unsigned int>(array, sizeof(array)/sizeof(array[0]));

配列の各要素に対して次のような計算を繰り返してハッシュコードを生成します。四則演算に対応した組込型で、とくに浮動小数点ではない整数系の処理に向きます。

T_OUT hashCode = seed;
(配列要素総当りループ) {
hashCode = hashCode * ((sizeof(T_IN)*8)-1) ^ 配列要素;
}
return hashCode;

コンストラクタとデストラクタ

template<typename T_OUT , const size_t default_seed = 17>
template<typename T_IN >
MQ0x::CollectionHashCode< T_OUT, default_seed >::CollectionHashCode ( const T_IN *  pSrc,
const size_t  ct,
const T_OUT  seed = defaultSeed 
)
inline

配列の先頭ポインタと個数を指定してハッシュコードを生成

Template Parameters
T_INソース配列の型を指定
覚え書き
pSrcがNULLまたは配列数が0である場合、与えられた初期値がそのままハッシュコードとして記録されます。
template<typename T_OUT , const size_t default_seed = 17>
MQ0x::CollectionHashCode< T_OUT, default_seed >::CollectionHashCode ( const char *  pSrc,
const T_OUT  seed = defaultSeed 
)
inline

文字列を指定してハッシュコードを生成

覚え書き
pSrcがNULLまたは長さが0の空の文字列である場合、与えられた初期値がそのままハッシュコードとして記録されます。
template<typename T_OUT , const size_t default_seed = 17>
MQ0x::CollectionHashCode< T_OUT, default_seed >::CollectionHashCode ( const wchar_t *  pSrc,
const T_OUT  seed = defaultSeed 
)
inline

ワイド文字列を指定してハッシュコードを生成

覚え書き
pSrcがNULLまたは長さが0の空の文字列である場合、与えられた初期値がそのままハッシュコードとして記録されます。

関数

template<typename T_OUT , const size_t default_seed = 17>
template<typename T_IN >
static CollectionHashCode MQ0x::CollectionHashCode< T_OUT, default_seed >::FromTrailCodeCollection ( const T_IN *  pSrc,
const T_IN  trailCode,
const T_OUT  seed = defaultSeed 
)
inlinestatic

配列の先頭ポインタと配列の終端値を指定してハッシュコードを生成

Template Parameters
T_INソース配列の型を指定
覚え書き
pSrcがNULLまたは、最初のデータで終端する空の配列である場合、与えられた初期値がそのままハッシュコードとして記録されます。