我创建了一个myString类,其中已重载了用于哈希表的运算符。我有以下问题: 在我的打印功能中,提示值有效,但提示键无效。而是打印随机字符。
我不希望在此程序中使用节点。
void hashTable::print(){
int i;
cout<<"-------hash table-------"<<endl;
cout<<"index key value"<<endl;
MyString key=data[i].getKey();
int value=data[i].getValue();
for(i=0;i<length;i++){
cout<<" "<<i;
cout<<" "<<key;
cout<<" "<<value;
}
cout<<endl;
}
答案 0 :(得分:4)
在代码中,您仅使用key
一次设置value
和i
一次,由于尚未初始化,因此具有不确定的值。您需要使用正确的i
值让元素每个迭代。
void hashTable::print() {
cout << "-------hash table-------" << endl;
cout << "index key value" << endl;
for(int i = 0; i < length; i++) {
MyString key = data[i].getKey();
int value = data[i].getValue();
cout << " " << i;
cout << " " << key;
cout << " " << value;
}
cout << endl;
}
不确定这是否可以完全解决您的问题,但是仍然可以帮助您。