zoukankan      html  css  js  c++  java
  • C++中的queue类、QT中的QQueue类

    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 
  • 相关阅读:
    Linux 下面安装 nginx 以及进行TCP反向代理、负载均衡的过程
    AMD全新32核线程撕裂者GeekBench跑分曝光:超2950X近一倍
    Win7 & VS2013 编译 WebKit 总结
    窗宽窗位与其处理方法
    编写Delphi控件属性Stored和Default的理解及应用
    vSphere、Hyper-V与XenServer 你选哪个?
    写给那些常年战痘的痘友们~~~
    怎么解决xp系统不能安装NET Framework4.0?
    Kali Linux渗透基础知识整理(四):维持访问
    解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
  • 原文地址:https://www.cnblogs.com/lifexy/p/8884048.html
Copyright © 2011-2022 走看看