“ MyString”值无法正确提示

时间:2019-04-10 04:18:35

标签: c++ data-structures hashtable

我创建了一个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;
}

1 个答案:

答案 0 :(得分:4)

在代码中,您仅使用key一次设置valuei一次,由于尚未初始化,因此具有不确定的值。您需要使用正确的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;
}

不确定这是否可以完全解决您的问题,但是仍然可以帮助您。