STL中实现了一个queue模板,符合单向队列的FIFO(先进先出)规则。
queue的实现是基于已有的双向队列deque,它的方法不多。
bool empty(); ----------判断是否为空,空返回真
size_t size(); ----------队列大小
//reference,const_reference是迭代器值类型,后者为常量的迭代器类型不可改变
reference front(); ---------返回队头的迭代器指针
reference back();
//下面这两个函数是const成员函数的实现,返回的是const的元素,是右值。
const_reference front();-------读取队投头元素
const_reference back(); -------读取队尾元素
void pop(); ----------推出队头元素
void push(x); ----------插入一个元素到队尾
队列的queue的模板类实现在头文件#include < queue >里面
构造一个queue模板类的对象,有两个参数,一个为元素类型,一个为容器类型。其中元素类型是必须要指定的,而容器类型为可选,在源代码中,默认的容器类型为双向队列。特别要指出的是queue不包含有迭代器,即无法进行遍历。
#include<iostream>
#include<queue>
using namespace std;
int main()
{
//队列的使用
queue<int> my_queue;
//入队
my_queue.push(10);
my_queue.push(20);
//接收当前队头的数据
int front = my_queue.front();
//读取队尾元素
int back = my_queue.back();
//出队
my_queue.pop();
cout<<"队头元素:"<<front<<endl;
cout<<"队尾元素:"<<back<<endl;
cout<<"pop后的大小:"<<my_queue.size();
return 0;
}