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

    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 
  • 相关阅读:
    正则表达式练习,持续更新中
    Jquery使用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
    SQL查找 删除重复数据只保留一条
    TreeView(C#)无限目录树代码片段
    ora-01440:要减小精度或标度,则要修改的列必须为空
    SQL查询和删除重复字段的内容
    CodeSmith(C#)简单示例及相关小知识
    MSSQL 自定义函数详解
    一些精妙的sql语句收集
    134.Gas Station
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13091349.html
Copyright © 2011-2022 走看看