c++ - 实现模板类 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 获取实现的问题。使用迭代器
解决方案
您只需要包含列表标题,使用小写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;
};
推荐阅读
- c# - 如何将 SQL Server 数据库与 Coded UI Test 结合使用?
- android - 有没有办法吸引下载应用但从不打开的用户?
- wordpress - 高级自定义字段灯箱似乎显示附加到字段的所有图像,而不是附加到帖子的图像
- nightwatch.js - 如果 .assert.containsText 在 nightwatch 中失败,Chrome 浏览器会崩溃
- java - 如何使用 java 从 derby 数据库中获取表名、约束、外键和引用?
- msbuild - 我们应该如何在通过 msbuild PackageReference 使用 nuget 包的新世界中执行包构建目标?
- reactjs - 安装时调用 componentWillUnmount() - React.js
- c - 从文件中的特定位置读取特定数据(C)
- ios - 如何通过电子邮件将 JSON 转换为 CSV 作为附件 Ionic 3
- azure - API 管理和应用程序认证