queue队列也是一个线性存储表,与后进先出的堆栈不同,元素数据在表的一端插入,在另一端进行删除,即构成了先进先出FIFO表。插入的一端成为队尾,删除的一端成为队首。
由于C++ STL的队列泛化,默认使用的是双端队列deque来实现。
实际上,我们使用的是queue队列是否为空,取队首元素,取队尾元素,元素入队和元素出队等功能。
queue队列应用
创建queue对象
使用queue队列之前,同stack堆栈一样,需要用构造函数先创建一个空的queue对象,才可使用之后的取队首元素等功能。
1) queue
默认的构造函数,创建一个空的queue对象。
下面的实例代码为使用默认的双端队列为底层容器创建一个空的queue队列对象q,数据元素为int类型。
queue<int> q;
2) queue(const queue&)
复制构造函数,用一个queue对象创建新的queue对象。
下面实例代码为利用queue对象q1,创建一个以双向链表为底层容器的queue对象q2
queue<int,list<int>>q2(q1);