我正在实现一个哈希表来帮助存储和检索应用程序的属性。目前,它主要是工作,除非我尝试检索不存在的值。我的代码应返回一个空字符串,而不是崩溃。这是相关的代码。该数组是动态分配的。
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;
}
}
答案 0 :(得分:0)
使用几个标准哈希表实现之一,如unordered_map
。你提到你“需要能够通过并保存地图中的所有条目”;迭代地图并用元素做任何你想做的事情是微不足道的,例如使用std::copy()
。