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 
  • 相关阅读:
    mpvue: stylus定义主题色
    mpvue: 单个页面自定义导航栏或隐藏
    mpvue: fsevents is not a constructor
    Nginx:taro h5 Nginx代理配置
    git: 替换remote origin
    taro3.x: h5地图兼容组件封装
    taro3.x: h5地图兼容
    taro3.x: 使用taro-router在H5浏览器返回报错
    taro3.x: tarojs-router
    java线程与线程安全的单例模式
  • 原文地址:https://www.cnblogs.com/lifexy/p/8884048.html
Copyright © 2011-2022 走看看