Возврат пустого итератора в код хеш-таблицы 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 делают то же самое.