我有以下代碼實現簡單散列/字典在C++以一個類型作爲參數的函數C++
Hash.h
using namespace std;
#include <string>
#include <vector>
class Hash
{
private:
vector<const char*> key_vector;
vector<const char*> value_vector;
public:
void set_attribute(const char*, const char*);
string get_attribute(const char*);
};
Hash.cpp
using namespace std;
#include "Hash.h"
void Hash::set_attribute(const char* key, const char* value)
{
key_vector.push_back(key);
value_vector.push_back(value);
}
string Hash::get_attribute(const char* key)
{
for (int i = 0; i < key_vector.size(); i++)
{
if (key_vector[i] == key)
{
return value_vector[i];
}
}
}
目前,它可以作爲一個鍵/值的唯一類型是const char*
,但我想擴展它,使它c採取任何類型(顯然每個散列只有一種類型)。我正在考慮通過定義一個以類型作爲參數的構造函數來實現這一點,但在這種情況下我完全不知道如何去做。我該怎麼做,我將如何實現它,所以set_attribute被定義爲採取這種類型?
編譯:單
你有沒有聽說過模板?他們非常有用。 – chris 2012-07-07 23:59:25
'std :: map'或'std :: unordered_map'如何? – bitmask 2012-07-08 01:16:42
這與Mono有什麼關係? – skolima 2012-07-08 12:18:40