vC++で汎用ハッシュマップを作成するにはどうすればよいですか?私は言語オプションとしてVisual StudioとVC++を使用しています。私は実装をヘッダー(インターフェース)とcppファイルに分けたいと思っています。 ヘッダー:C++で汎用ハッシュマップを作成する方法は?
template<class T1,class T2>
class Generic
{
map<T1,T2> m1;
public:
// Standard constructors and destructors
// -------------------------------------
Generic();
virtual ~Generic();
// Copy constructor and equal operator
// -----------------------------------
Generic (Generic &);
Generic& operator=(Generic&);
void insert(const T1& key,const T2& value);
T2 lookup(const T1&key);
};
と私のcppファイル:私はここで間違いを犯していますかどうかを疑問に思って
MyGeneric::Generic()
{
}
//-----------------------------------------------------------------------------
// Generic : destructor
//-----------------------------------------------------------------------------
Generic::~Generic()
{
}
//-----------------------------------------------------------------------------
// Generic : copy constructor
//-----------------------------------------------------------------------------
Generic::Generic(Generic& original)
{
}
//-----------------------------------------------------------------------------
// Generic : equal operator
//-----------------------------------------------------------------------------
Generic& Generic::operator=(Generic& original)
{
return *this;
}
void Generic::insert(const T1& key,const T2& value)
{
}
T2 Generic::lookup(const T1&key)
{
}
。私は私のcppファイルでテンプレートを定義していないので、その使用法についても混乱しています。それは問題ですか?ハッシュマップで対応するキーの単一の値を削除するにはどうすればよいですか?
'std :: hash_map'または' std :: unordered_map'の何が問題なのですか? –
@Cody、それらを一般的に使うことはできますか?私は、その中にどのような種類のキー値も格納できる単一のマップオブジェクトが必要なことを意味します。ちょうどキーとその型に基づいて私はそのキーにバインドされている型の値を取得する必要があります。私はこのロジックを使用するつもりはない、私のプログラムは間違いなく厄介になります.. – user1061293
@ user1061293:どちらもテンプレートベースの汎用標準ライブラリコンテナ本質的にホイールを再発明しようとしている。 –