さて、私は一種のハッシュテーブルとして機能する簡単な小さなクラスを作ろうとしています。私がそれを機能させることができれば、私はこれを行うことができるはずです:
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]]'
第 2 に、operator[]= はここでは正しい構文ではないようです。他に見つけたのは &operator[] だけでしたが、ルックアップ手順をコーディングしなければならないので、うまくいかないと思いますか??? (その構文は、配列項目の参照を返すために使用されているだけではありませんか?)
私がここでやろうとしていることは可能ですか?アドバイスをいただければ幸いです。:)
私がやろうとしていることについて混乱しているようです。私は自分のコードを投稿します:
すべてのヘルプの後の完成品: