stack和queue的操作和实现

  1. stack的操作
    |函数名| 功能 |
    |–|--|
    | stack(const container_type &ctnr = container_type()) | 构造空栈 |
    |bool empty() const判断栈是否为空|
    |size_type size() const|返回栈的长度|
    |value_type &top()|返回栈顶元素的引用|
    |const value_type &top() const|返回栈顶元素的const引用|
    |void push(const value_type &val)|将元素val插入栈中|
    |void push()|将stack中尾部的元素弹出|
    |template<class … Args> void emplace(Args&&… args)(c++11)|在stack的栈顶构造元素|
    |void swap(stack &x)(c++11)|交换两个栈中的元素|
  2. queue的操作
函数名功能
queue(const container_type &ctnr = container_type())构造空队列
bool empty() const检测队列是否为空
size_type size()const返回队列中有效元素个数
value_type &front()返回队列头元素的引用
const value_type &front()const返回队列头元素的const引用
value_type &back()返回队列尾元素的引用
constvalue_type &back()const返回队列尾元素的const引用
void push(value_type &val)在队尾将元素val入队列
void pus()将队头元素出队列
template<class…Args> void emplace(Args &&…args)(c++11)在队尾构造元素
void swap(queue &x)交换两个队列的元素
  1. stack的实现
//模拟实现stack
///
template<class T, class Con = deque<T>>
 class Stack
 {
 public:
  Stack()
  {}
  void Push(const T& x)
  {
   _c.push_back(x);
  }
  void Pop()
  {
   _c.pop_back();
  }
  T& top()
  {
   return _c.back();
  }
  size_t size() const
  {
   return _c.size();
  }
  bool Empty()const
  {
   return _c.empty();
  }
 private:
  Con _c;
 };

4.queue的实现

namespace QUEUE 
{
  template<class T, class Con = deque<T>>
 class Queue   
 {   
 public:    
 Queue()    
 {}    
 void push(const T& x)    
 {     
 _c.push_back(x);    
 }    
 void pop()    
 {    
  _c.pop_back();    
  }    
  T& back()    
  {     
  return _c.back();    
  }    
  T& front()    
  {     
  return _c.front();    
  }   
  private:
   Con _c;
  };
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值