這是我第一次製作散列表。我試圖將字符串(鍵)與類Strain的對象(數據)的指針相關聯。將對象插入散列表(C++)
// Simulation.h
#include <ext/hash_map>
using namespace __gnu_cxx;
struct eqstr
{
bool operator()(const char * s1, const char * s2) const
{
return strcmp(s1, s2) == 0;
}
};
...
hash_map< const char *, Strain *, hash< const char * >, struct eqstr > liveStrainTable;
在Simulation.cpp文件,我嘗試初始化表:
string MRCA;
for (int b = 0; b < SEQ_LENGTH; b++) {
int randBase = rgen.uniform(0,NUM_BASES);
MRCA.push_back(BASES[ randBase ]);
}
Strain * firstStrainPtr;
firstStrainPtr = new Strain(idCtr, MRCA, NUM_STEPS);
liveStrainTable[ MRCA ]= firstStrainPtr;
我收到寫着「敵不過‘操作[]’中「((模擬的錯誤消息* )本) - >仿真:: liveStrainTable [MRCA]」「。我也嘗試以不同的方式使用「liveStrainTable.insert(...)」,但無濟於事。
真的會喜歡這方面的一些幫助。我很難理解適合SGI hash_map的語法,並且SGI reference幾乎沒有爲我澄清任何事情。謝謝。
這是否有什麼優勢呢? – 2009-10-30 15:46:15
不使用具有兩個前導下劃線的命名空間:) – 2009-10-30 16:19:35