C ++で単純なハッシュテーブルを作成しようとしています。私のハッシュテーブル実装テンプレートは次のようになります。
template<class k, class v, class h<k>, class e<k> >
class my_hash {
};
ここで、
k = キーのクラス タイプ
v = 値のクラス タイプ
h = ハッシュ fn の
クラス タイプ e = 等価 fn のクラス タイプ
このようにクラス h を定義しました
template<class k>
class h {
};
上記のテンプレートを、int、string などのさまざまな k タイプに特化します。k で my_hash テンプレートを呼び出すたびに、自動的に
h<k>
ハッシュ関数タイプとして。これが起こるには、テンプレートをどのように定義しますか?
上に示したように定義すると、g++ は h がテンプレートではないというコンパイラ エラーを返します。誰かがこれを手伝ってくれませんか?