«MyString» значения не корректно - PullRequest
0 голосов
/ 10 апреля 2019

Я создал класс myString, в котором у меня есть перегруженные операторы для использования в моей хэш-таблице.У меня есть следующая проблема: в моей функции печати значение couting работает, а ключ - couting.Вместо этого случайные символы печатаются.

Я не хочу использовать узлы в этой программе.

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 Ответ

4 голосов
/ 10 апреля 2019

В своем коде вы устанавливаете 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;
}

Не уверен, что это полностью решит вашу проблему, но, тем не менее, это поможет.

...