好的,我正在尝试制作一个快速的小类来作为一种哈希表。如果我能让它工作,那么我应该能够做到这一点:
StringHash* hash = new StringHash;
hash["test"] = "This is a test";
printf(hash["test"]);
它应该打印出“这是一个测试”。
看起来我现在有两个问题。首先我这样做了:
const char* operator[](const char* key) {
for(int i = 0; i < hashSize; ++i) {
if(strcmp(hkeys[i], key) == 0) {return values[i];}
}
return NULL;
}
但是当我尝试查找一个值时,编译器会抱怨
错误:数组下标的无效类型 `StringHash*[const char[5]]'
其次 operator[]= 在这里似乎不是正确的语法。我能找到的唯一另一件事是 &operator[] 但我认为这不会起作用,因为我必须编写查找过程的代码???(该语法不是仅用于返回数组项引用吗?)
我在这里尝试做的事情甚至可能吗?任何建议表示赞赏。:)
似乎对我正在尝试做的事情有些困惑。我将发布我的代码:
所有帮助后的成品: