Хорошо, я пытаюсь сделать небольшой класс, который будет работать как своего рода хеш-таблица. Если я смогу заставить его работать, тогда я смогу сделать это:
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]] 'для индекса массива
Во-вторых, здесь оператор [] = не является правильным синтаксисом. Единственное, что я смог найти, это оператор & [] но я не думаю, что это сработает, так как мне нужно закодировать процедуру поиска ??? (Разве этот синтаксис не используется только для возврата ссылки на элемент массива?)
Это то, что я ' м пытаюсь сделать здесь хоть возможно? Любые советы приветствуются. :)
Похоже, я не понимаю, что я пытаюсь сделать. Я выложу свой код:
Готовый продукт после всей помощи: