Хорошо, я пытаюсь сделать небольшой урок для работы в качестве своего рода хэш-таблицы. Если я смогу заставить его работать, я смогу сделать это:
StringHash* hash = new StringHash;
hash["test"] = "This is a test";
printf(hash["test"]);
И это должно распечатать "Это тест".
Похоже, у меня 2 проблемы на данный момент. Сначала я сделал это:
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 [], но я не думаю, что это сработает, поскольку мне нужно кодировать процедуру поиска ??? (Разве этот синтаксис не используется только для возврата ссылки на элемент массива?)
Возможно ли то, что я пытаюсь сделать здесь? Любой совет приветствуется. :)
Кажется, я не совсем понимаю, что я пытаюсь сделать. Я выложу свой код:
http://pastebin.com/5Na1Xvaz
Готовый продукт после всей помощи:
http://pastebin.com/gx4gnYy8