Использование итератора в методах шаблонного класса унаследованного от std::list
Ребята, у меня следующая беда. Есть класс унаследованный от std::list
template <class T>
class priority_queue : public list<T>
{
public:
priority_queue& push(T);
priority_queue& pop();
T top();
};
Определяю метод push():
template <class T>
priority_queue<T>& priority_queue<T>::push(T data)
{
list<T>::iterator iter = this->begin();
while (iter != this->end() && *iter > data)
iter++;
this->insert(iter, data);
return *this;
}
И значит, list::iterator - теперь у меня неизвестный токен. Как правильно использовать итераторы в таких случаях? Ничего не нагуглил.