使用模板类List实现类堆栈时出现错误。
#include <iostream>
#include <stdexcept>
template<class T>
class Stack
{
private:
List<T> fElements;
public:
typedef typename List<T>::Iterator Iterator;
bool isEmpty() const;
int size() const;
void push( const T& aItem );
void pop();
const T& top() const;
const T& operator[]( size_t aIndex ) const;
// stack iterators
Iterator begin() const;
Iterator end() const;
Iterator rbegin() const;
Iterator rend() const;
};
使用类Stack获取实现的问题。使用迭代器
答案 0 :(得分:1)
您只需要包括列表头,使用小写的list
而不是大写的List
并指定名称空间std:
#include <iostream>
#include <stdexcept>
#include <list>
template<class T>
class Stack
{
private:
std::list<T> fElements;
public:
typedef typename std::list<T>::Iterator Iterator;
bool isEmpty() const;
int size() const;
void push( const T& aItem );
void pop();
const T top() const;
const T &operator[]( size_t aIndex ) const;
// stack iterators
Iterator begin() const;
Iterator end() const;
Iterator rbegin() const;
Iterator rend() const;
};
答案 1 :(得分:0)
您应该包含list
标头,并且c ++是区分大小写的编程语言,因此,根据标准声明数据类型(对此为Abstract)并指定std名称空间非常重要。
#include <iostream>
#include <stdexcept>
#include <list>
template<class T>
class Stack
{
private:
std::list<T> fElements;
public:
typedef typename std::list<T>::Iterator Iterator;
bool isEmpty() const;
int size() const;
void push( const T& aItem );
void pop();
const T& top() const;
const T& operator[]( size_t aIndex ) const;
// stack iterators
Iterator begin() const;
Iterator end() const;
Iterator rbegin() const;
Iterator rend() const;
};