私はSTLのリストを使用してキューをシミュレートしようとしていたコードは、あるクラスは、ここでC++のイテレータ
template <class T>
class myqueue{
list<T> m;
public:
void enqueue(T item);
T dequeue();
void display();
};
である私には、表示する表示機能を実装したものですリストm
の内容は、イテレータを使用しています。
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;
}
:
template <class T>
void myqueue<T>::display(){
// list<T>::iterator it;
for (auto it = m.begin(); it < m.end(); it++)
std::cout << *it;
}
と私は継続的にエラーがこれに助けが必要になっていますが、これは私がForループ
EDITに!=
代わりの<
を使用している必要があります解決されましたエラーが発生しています
"31:13: error: need 'typename' before 'std::list<T>::iterator' because 'std::list<T>' is a dependent scope"
キーワードauto
を使用すると問題なく動作します。その背後にある理由は何ですか?
何のエラーを得るのですか? – Hayt
これはすべきです!= m.end() – Danh
あなたのキューの 'list'の代わりに' deque'を考えてみてください。 – NathanOliver