Я следую некоторым рукописным заметкам о реализации хеш-таблицы с отдельным сцеплением. В частности, я смотрю на эту функцию:
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 ()?
Да, возвращаю end()
итератор — самая естественная вещь в C ++.
Например, std::find
возвращает end
итератор, если он не может найти искомый элемент.
В с ++ нет пустой концепции итератора. Вы должны вернуть end () итератор. Даже стандартные алгоритмы STL делают то же самое.