1.简介
queue(队列)在stl里面不是一个基础的容器(container),而是一个适配器(adapter),一般是封装了其他的基础容器作为存储基础。在stl里面,stl::queue是基于stl:deque双端队列来实现的,不过根据queue先进先出以及首尾快速存取的数据结构特点,也可以基于list进行实现,而不推荐vector之类的数组实现——因为在vector头部的插入或者删除速度过慢。根据STL之queue容器详解_std::queue-优快云博客 这篇文章的介绍,可以看到stl里面常见的基本容器的一些特点。
2.基于list实现的queue
基于list实现的queue比较简单,所有的push、pop之类的操作都可以看做是对list的对应操作的进一步封装使用。
#include "MyList.h" //可以改为stl的list
template<typename T>
class Myqueue
{
public:
Myqueue() {};
Myqueue(const MyList<T>& _list)
: container(_list)
{};