简介
Queue是一种容器适配器,它专门设计用于元素执行先进先出操作。元素在容器的一端插入,在另一端取出。
Queue作为容器适配器而实现,它是一个使用指定容器类作为其潜在容器存储数据,并提供一组操作函数对容器中的数据进行操作的类。
潜在容器可以是标准容器类模板或者是一些特殊设计过的容器类,它们必须提供如下操作:
Ø front()
Ø back()
Ø push_back()
Ø pop_back()
其中标准容器类中的deque和list能够满足其要求。默认情况下,如果没有指定那个容器类作为其潜在的容器,deque将做为默认的容器类。
成员函数
queue::queue()
构造一个queue容器适配器对象。
queue::empty()
判断容器是否为空,如果为空则返回true,否则返回false。
queue::size()
返回queue中元素的个数。
queue::front()
返回队首元素的引用。
queue::back()
返回队尾元素的引用。
queue::push()
在队尾插入一个元素。
queue::emplace()
在队尾插入一个元素,插入的元素由其构造函数构造。
queue::pop()
从队首取出一个元素。
queue::swap()
交换两个队列中的元素。
示例程序
#include <iostream>
#include <queue>
#include <deque>
#include <list>
using namespace std;
int main(void)
{
deque<int> deq(3, 10);
list<int> lis(3, 20);
// queue::queue()
queue<int> first;
queue<int> second(deq);
queue<int, list<int>> third;
queue<int, list<int>> fourth(lis);
// queue::empty()
if(first.empty()){
cout << "Queue is empty." << endl;
}else{
cout << "Queue is not empty" << endl;
}
// queue::size()
cout << "The number of data in second : ";
cout << second.size() << endl;
// queue::front()
cout << "The first element is : ";
cout << second.front() << endl;
// queue::back()
cout << "The list element is : ";
cout << second.back() << endl;
// queue::push()
second.push(20);
cout << "The list element is : ";
cout << second.back() << endl;
// queue::emplace()
second.emplace();
cout << "The list element is : ";
cout << second.back() << endl;
// queue::pop()
second.pop();
cout << "The list element is : ";
cout << second.back() << endl;
// queue::swap()
first.swap(second);
cout << "The size of first : " << first.size() << endl;
cout << "The size of second : " << second.size() << endl;
return 0;
}