У меня возникли проблемы с выполнением функции сравнения в двусвязном списке, цель которой - «проверьте, имеют ли два списка одну и ту же последовательность элементов. Два списка равны, если они имеют одинаковые количество элементов и элементов в соответствующей позиции равны » Кажется правильным, но я получаю ошибки, когда пытаюсь скомпилировать его. Вот код, используемый вместе с отдельным файлом заголовке, который описание:Функция сравнения в двусвязном списке
A header file List.h is provided, which contains the interfaces of the doubly-linked list class template List.
Вот моя функция сравнения:
template <typename T>
bool operator==(const List<T> & lhs, const List<T> & rhs){
if (lhs.theSize == rhs.theSize){
/*line345*/ for(List<T>::iterator itr = lhs.begin(), List<T>::iterator itr_2 = rhs.begin(); itr != lhs.end(); ++itr, ++itr_2){
if(*itr != *itr_2)
return false;
}
return true;
}
else
return false;
}
Позвольте мне знать, если мне нужно предоставить больше кода. Мои ошибки:
List.cpp:345:35: error: expected ';' before 'itr'
List.cpp:345:93: error: 'itr' was not declared in this scope
List.cpp:345:120: error: 'itr_2' was not declared in this scope
List.cpp:344:9: error: within this context
List.cpp:345:91: error: dependent-name 'cop4530::List<T>::iterator' is parsed as a non-type, but instantiation yields a type
Возможный дубликат [Где и почему мне нужно поставить ключевые слова «шаблон» и «имя-тип»?] (Http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-the-template-and-typename-keywords) – erenon