C++ -- queue 和 stack模拟实现

简介: C++ – queue 和 stack模拟实现1. queue模拟实现队列是先进先出的特性,这里要支持vector、list、deque等等,这里queue和stack模拟实现,都是直接复用

C++ – queue 和 stack模拟实现

1. queue模拟实现

队列是先进先出的特性,这里要支持vector、list、deque等等,这里queue和stack模拟实现,都是直接复用

1.0 成员变量

template <class T, class Container = list<T>>
Container _container;

1.1 push()

void push(const T& val)
{
  _container.push_back(val);
}

1.2 pop()

void pop()
{
  _container.pop_front();
}

1.3 front()

const T& front()
{
  return _container.front();
}

1.4 back()

const T& back()
{
  return _container.back();
}

1.5 size()

size_t size()
{
  return _container.size();
}

1.6 empty()

bool empty()
{
  return _container.empty();
}
  1. 解释class Container作用

就拿push()来说,_contatiner.push_back(val);假设 _Container是list类型,那么 _container就是list类型,这时 _container直接调用库接口push_back();

1.7 完整代码

namespace my_queue
{
  template <class T, class Container = list<T>>
  class queue
  {
  public:
    void push(const T& val)
    {
      _container.push_back(val);
    }
    void pop()
    {
      _container.pop_front();
    }
    const T& front()
    {
      return _container.front();
    }
    const T& back()
    {
      return _container.back();
    }
    size_t size()
    {
      return _container.size();
    }
    bool empty()
    {
      return _container.empty();
    }
  private:
    Container _container;
  };
}

2. stack模拟实现

2.0 成员变量

template <class T, class Container = vector<T>>
Container _container;

2.1 push()

void push(const T& val)
{
  _container.push_back(val);
}

2.2 pop()

void pop()
{
  _container.pop_back();
}

2.3 top()

const T& top()
{
  return _container.back();
}

2.4 back()

const T& back()
{
  return _container.back();
}

2.5 size()

size_t size()
{
  return _container.size();
}

2.6 empty()

bool empty()
{
  return _container.empty();
}

2.7 完整代码

namespace my_stack
{
  template <class T, class Container = vector<T>>
  class stack
  {
  public:
    void push(const T& val)
    {
      _container.push_back(val);
    }
    void pop()
    {
      _container.pop_back();
    }
    const T& top()
    {
      return _container.back();
    }
    const T& back()
    {
      return _container.back();
    }
    size_t size()
    {
      return _container.size();
    }
    bool empty()
    {
      return _container.empty();
    }
  private:
    Container _container;
  };
}









相关文章
|
29天前
|
设计模式 算法 C++
【C++初阶】12. Stack(栈)和Queue(队列)
【C++初阶】12. Stack(栈)和Queue(队列)
42 3
|
14天前
|
存储 算法 C++
c++的学习之路:17、stack、queue与priority_queue
c++的学习之路:17、stack、queue与priority_queue
30 0
|
20天前
|
C++ 容器
约瑟夫经典问题C++,STL容器queue解法
约瑟夫经典问题C++,STL容器queue解法
12 0
|
24天前
|
C++ 容器
【C++初阶】STL详解(六)Stack与Queue的介绍与使用
【C++初阶】STL详解(六)Stack与Queue的介绍与使用
19 1
|
24天前
|
存储 C++ 容器
【C++初阶】STL详解(七)Stack与Queue的模拟实现
【C++初阶】STL详解(七)Stack与Queue的模拟实现
13 1
|
2月前
|
存储 算法 C++
C++:stack、queue、priority_queue增删查改模拟实现、deque底层原理
C++:stack、queue、priority_queue增删查改模拟实现、deque底层原理
35 0
|
2月前
|
C++ 容器
【C++练级之路】【Lv.9】【STL】stack类和queue类的模拟实现
【C++练级之路】【Lv.9】【STL】stack类和queue类的模拟实现
|
5天前
|
编译器 C++
【C++】一文全解四种经典 [ 特殊类 ]的设计
【C++】一文全解四种经典 [ 特殊类 ]的设计
|
5天前
|
编译器 C语言 C++
c++初阶------类和对象(六大默认构造函数的揭破)-3
c++初阶------类和对象(六大默认构造函数的揭破)
|
5天前
|
编译器 C语言 C++
c++初阶------类和对象(六大默认构造函数的揭破)-2
c++初阶------类和对象(六大默认构造函数的揭破)