C++——stack和queue的模拟实现
Posted 小倪同学 -_-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++——stack和queue的模拟实现相关的知识,希望对你有一定的参考价值。
容器适配器
stack和queue没有自己独立的容器,而是对其他容器接口进行包装,STL中stack和queue默认使用的是deque容器,如下图。
从stack和queue的类模板声明中可以看出,它的模板有两个参数第一个是所存储的数据类型,第二个是它们封装的容器类型,这里默认是deque容器。
queue和stack的模拟实现主要是调用deque容器实现
stack的模拟实现
namespace nzb
template<class T, class Con = deque<T>>
class stack
public:
// 入栈
void push(const T& x)
_c.push_back(x);
// 出栈
void pop()
_c.pop_back();
// 返回栈顶元素
T& top()
return _c.back();
const T& top()const
return _c.back();
// 栈中有效元素个数
size_t size()const
return _c.size();
// 判空
bool empty()const
return _c.empty();
private:
Con _c;// 调用deque容器
;
queue容器的模拟实现
namespace nzb
template<class T, class Con = deque<T>>
class queue
public:
// 入队列
void push(const T& x)
_c.push_back(x);
// 出队列
void pop()
_c.pop_front();
// 返回队尾元素
T& back()
return _c.back();
const T& back()const
return _c.back();
// 返回队首元素
T& front()
return _c.front();
const T& front()const
return _c.front();
// 队列中元素个数
size_t size()const
return _c.size();
// 队列的判空
bool empty()const
return _c.empty();
private:
Con _c;
;
以上是关于C++——stack和queue的模拟实现的主要内容,如果未能解决你的问题,请参考以下文章
C++初阶第十二篇—stack和queue(stack和queue的常见接口的用法与介绍+priority_queue+容器适配器+仿函数+模拟实现)
C++入门stack和queue适配器介绍+ priority_queue的模拟实现仿函数基本概念提及