C++中的queue类、QT中的QQueue类
程序员文章站
2022-05-11 17:20:48
C++中的queue 实现一种先进先出的数据结构,是一个模板类 头文件 #include 用法(以int型为例): 代码示例: QT中的QQueue 它的父类是QList,是个模板类 常用用法(以int型为例): 代码示例: 打印: ......
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