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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM