Возврат пустого итератора в код хеш-таблицы C++

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

list<ListCell>::iterator TablaHash::FoundOnList(int key, int table_row){
    for(list<ListCell>::iterator found= table[table_row].begin(); 
            found != table[table_row].end();found++){
        if((*found).Key() == key){
            return found;
        }
    }
    return Ø;
}

где последний символ - пустой набор. Я понимаю, что должен вернуть "пустой" итератор, но что мне делать? Может, вернуть итератор end()?

2 ответа

Решение

Да, возвращаю end() итератор - самая естественная вещь в C++.

Например, std::find возвращает end итератор, если он не может найти искомый элемент.

В с ++ нет пустой концепции итератора. Вы должны вернуть end() итератор. Даже стандартные алгоритмы STL делают то же самое.

Другие вопросы по тегам