2015-08-02 2 views
1

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

ответ

1

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

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

+0

Мог ли я использовать 0 вместо этого? После этого появляется функция, которая возвращает FoundOnList (key, table_row)! = 0, чтобы увидеть, существует ли в таблице определенный элемент. – Rodrigo

0

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