アプリケーションのプロパティを格納および取得するのに役立つハッシュテーブルを実装しています。現時点では、存在しない値を取得しようとする場合を除いて、ほとんどの場合動作します。私のコードは、空の文字列を返す必要がありますが、代わりにクラッシュします。ここに関連コードがあります。配列は動的に割り当てられます。C++は、チェーンを使用してハッシュテーブルからプロパティを取得します。
struct Property {
Property* next;
std::string key;
std::string value;
Property() {
key = "";
value = "";
next=NULL;
}
};
Property* properties;
int propSize;
std::string Properties::getProperty(std::string key) {
Property *ptr = &properties[hashcode(key)%propSize];
if (properties[hashcode(key)%propSize].key == "") {
return "";
}
else {
while((ptr->key != key) && (ptr->next != NULL))
ptr = ptr->next;
if (ptr->key != key)
return "";
else
return ptr->value;
}
}
-1:これをデバッグしようとしましたか?あなたは何を発見しましたか? –
C++は ''(または ''、 ''、または '')に専門的に設計されたハッシュテーブルを既に持っています。目的がハッシュテーブルを書く方法を学ぶことではない場合は、なぜあなた自身のロール、ひどく、? –
私はそれをデバッグしようとし、何も得られませんでした。全体がちょうどwhileループで停止しました。 1.私はunordered_mapについて知りませんでした 2.私はマップを通過してすべてのエントリをマップに保存する必要があります。 – Katherine1