这是代码,我试图使用STL列表模拟Queue,类是
template <class T>
class myqueue{
list<T> m;
public:
void enqueue(T item);
T dequeue();
void display();
};
这是display function的实现,我希望使用迭代器显示列表m
的内容。
template <class T>
void myqueue<T>::display(){
// list<T>::iterator it;
for (auto it = m.begin(); it < m.end(); it++)
std::cout << *it;
}
我不断收到错误需要帮助,这已经解决我应该在For循环中使用!=
而不是<
编辑:
template <class T>
void myqueue<T>::display() {
// list<T>::iterator it;
for (list<T>::iterator it = m.begin(); it < m.end(); it++)
std::cout << *it;
}
我收到错误
"31:13: error: need 'typename' before 'std::list<T>::iterator' because 'std::list<T>' is a dependent scope"
如果我使用关键字auto
,它可以正常工作。它背后的原因是什么?
答案 0 :(得分:0)
unique_ptr
应该是
for(auto it = m.begin();it<m.end();it++)
或简单地说:
for (auto it = m.begin(); it != m.end(); it++)