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 
  • 相关阅读:
    Android详细的对话框AlertDialog.Builder使用方法 枫
    提高ASP.NET网站性能的方法 枫
    百度地图使用标注 枫
    C# 调用 .bat 文件的实现代码 枫
    mssqll2008下只显示相关的登陆操作 枫
    利用MSSQL排序规则,查询区分大小写的数据 枫
    Sql server 删除重复记录的SQL语句 枫
    open与fopen 文件描述符与文件指针
    android获得屏幕高度和宽度
    C语言:void swap(int &a, int &b);出错
  • 原文地址:https://www.cnblogs.com/lifexy/p/8884048.html
Copyright © 2011-2022 走看看