一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

C++中的queue

实现一种先进先出的数据结构,是一个模板类

头文件 #include<queue>

用法(以int型为例):

 1 queue<int> Q;                  //定义一个int型队列
 2 
 3 Q.empty();                      //返回队列是否为空
 4 
 5 Q.size();                        //返回当前队列长度
 6 
 7 Q.front();                      //返回当前队列的第一个元素
 8 
 9 Q.back();                       //返回当前队列的最后一个元素
10 
11 Q.push();                     //在队列后面插入一个元素, 比如插入数字5: Q.push(5)
12 
13 Q.pop();                        //从当前队列里,移出第一个元素

代码示例:

 1 #include <iostream>
 2 #include <queue>
 3 
 4 using namespace std;
 5 int main()
 6 {
 7        queue<int> Q;
 8        cout<<"queue empty?  "<<Q.empty()<<endl;
 9 
10        for(int i=0;i<5;i++)
11        {
12               Q.push(i);        //进队列
13        }
14 
15        cout<<"queue empty?  "<<Q.empty()<<endl;
16        cout<<"queue size:   "<<Q.size()<<endl;
17        cout<<endl;
18 
19        for(int i=0;i<5;i++)
20        { 
21               cout<<"queue front:  "<<Q.front()<<endl;    
22               Q.pop();                //出队列
23        }
24 
25        return 0;
26 }

QT中的QQueue

它的父类是QList,是个模板类

头文件: #include <QQueue>

常用用法(以int型为例):

 1 QQueue<int> Q;                 //定义一个int型队列
 2 
 3 Q.isEmpty();                      //返回队列是否为空
 4 
 5 Q.size();                        //返回队列元素个数
 6 
 7 Q.clear();                        //清空队列
 8 
 9 Q.enqueue();                      //在队列尾部添加一个元素, 比如插入数字5: Q.enqueue(5)
10 
11 Q.dequeue();                     //删除当前队列第一个元素,并返回这个元素
12 
13 Q.head();                        //返回当前队列第一个元素
14 
15 Q.last();                        //返回当前队列尾部的元素
16 
17 T &  operator[]( int i );        //以数组形式访问队列元素

代码示例:

 1 #include <QtGui>
 2 #include <QQueue>
 3 #include <QDebug>
 4 
 5 int main(int argc,char * argv[])
 6 {
 7     QQueue<int> Q;                              //定义一个int型队列
 8     qDebug()<<"queue empty:  "<<Q.isEmpty();  //返回队列是否为空
 9 
10     for(int i=0;i<5;i++)
11     {
12          Q.enqueue(i);      //入队
13     }
14 
15     qDebug()<<"queue empty:  "<<Q.isEmpty();
16     qDebug()<<"queue size:  "<<Q.size();
17 
18     for(int i=0;i<5;i++)
19     {
20      qDebug()<<"queue last:  "<<Q.last();            //返回当前队列最后一个个元素
21      qDebug()<<"queue head:  "<<Q.dequeue();         //出队列,并且返回当前队列第一个元素
22     }
23 
24     qDebug()<<"queue empty:  "<<Q.isEmpty();
25     qDebug()<<"queue size:  "<<Q.size();
26 
27     return 0;
28 }

打印:

 1 queue empty:   true 
 2 queue empty:   false 
 3 queue size:   5 
 4 queue last:   4 
 5 queue head:   0 
 6 queue last:   4 
 7 queue head:   1 
 8 queue last:   4 
 9 queue head:   2 
10 queue last:   4 
11 queue head:   3 
12 queue last:   4 
13 queue head:   4 
14 queue empty:   true 
15 queue size:   0 

 

posted on 2020-06-11 09:34  一杯清酒邀明月  阅读(972)  评论(0编辑  收藏  举报