C++中的queue
实现一种先进先出的数据结构,是一个模板类
头文件 #include<queue>
用法(以int型为例):
queue<int> Q; //定义一个int型队列
Q.empty(); //返回队列是否为空
Q.size(); //返回当前队列长度
Q.front(); //返回当前队列的第一个元素
Q.back(); //返回当前队列的最后一个元素
Q.push(); //在队列后面插入一个元素, 比如插入数字5: Q.push(5)
Q.pop(); //从当前队列里,移出第一个元素
代码示例:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> Q;
cout<<"queue empty? "<<Q.empty()<<endl;
for(int i=0;i<5;i++)
{
Q.push(i); //进队列
}
cout<<"queue empty? "<<Q.empty()<<endl;
cout<<"queue size: "<<Q.size()<<endl;
cout<<endl;
for(int i=0;i<5;i++)
{
cout<<"queue front: "<<Q.front()<<endl;
Q.pop(); //出队列
}
return 0;
}
QT中的QQueue
它的父类是QList,是个模板类
头文件: #include <QQueue>
常用用法(以int型为例):
QQueue<int> Q; //定义一个int型队列
Q.isEmpty(); //返回队列是否为空
Q.size(); //返回队列元素个数
Q.clear(); //清空队列
Q.enqueue(); //在队列尾部添加一个元素, 比如插入数字5: Q.enqueue(5)
Q.dequeue(); //删除当前队列第一个元素,并返回这个元素
Q.head(); //返回当前队列第一个元素
Q.last(); //返回当前队列尾部的元素
T & operator[]( int i ); //以数组形式访问队列元素
代码示例:
#include <QtGui>
#include <QQueue>
#include <QDebug>
int main(int argc,char * argv[])
{
QQueue<int> Q; //定义一个int型队列
qDebug()<<"queue empty: "<<Q.isEmpty(); //返回队列是否为空
for(int i=0;i<5;i++)
{
Q.enqueue(i); //入队
}
qDebug()<<"queue empty: "<<Q.isEmpty();
qDebug()<<"queue size: "<<Q.size();
for(int i=0;i<5;i++)
{
qDebug()<<"queue last: "<<Q.last(); //返回当前队列最后一个个元素
qDebug()<<"queue head: "<<Q.dequeue(); //出队列,并且返回当前队列第一个元素
}
qDebug()<<"queue empty: "<<Q.isEmpty();
qDebug()<<"queue size: "<<Q.size();
return 0;
}
打印:
queue empty: true
queue empty: false
queue size: 5
queue last: 4
queue head: 0
queue last: 4
queue head: 1
queue last: 4
queue head: 2
queue last: 4
queue head: 3
queue last: 4
queue head: 4
queue empty: true
queue size: 0