首页 > 解决方案 > 实现模板类 Stack

问题描述

使用模板类 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 获取实现的问题。使用迭代器

标签: c++listtemplatesstack

解决方案


您只需要包含列表标题,使用小写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;
};

推荐阅读