ошибка: нет совпадения для 'operator =' в 'iter = ((const FHlist <Employee> *) theList) -> FHlist <Object> :: begin [with Object = Employee] ()'

0

Я делаю хэширующую функцию, и она не компилируется, я скопировал функцию ниже. Спасибо за вашу помощь и извините за мой английский

template <class Object>
bool FHhashSC<Object>::contains(const Object & x) const
{
   const FHlist<Object> &theList = mLists[myHash(x)];
   typename FHlist<Object>::iterator iter;

   for (iter = theList.begin(); iter != theList.end(); iter++)
      if (*iter == x)
         return true;

   // not found
   return false;
}
  • 0
    Пожалуйста, укажите, что не скомпилируется, и в чем была ошибка.
  • 0
    ошибка: нет совпадения для 'operator =' в 'iter = ((const FHlist <Employee> *) theList) -> FHlist <Object> :: begin [with Object = Employee] ()'
Показать ещё 1 комментарий
Теги:

1 ответ

2

Вы должны использовать const_iterator, потому что theList является постоянным объектом.

  • 0
    как это: имя типа FHlist <Object> :: const_iterator iter; ??
  • 0
    Да, если theList - это какой-то стандартный контейнер, в котором есть итератор и const_iterator.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню