完成了对QStack的学习,QQueue的学习就轻松多了。
看看效果:
源码:
queue.h
#ifndef QUEUE_H #define QUEUE_H #include <QWidget> #include <QTextEdit> #include <QQueue> class QueueWidget : public QWidget { Q_OBJECT public: explicit QueueWidget(QWidget *parent = NULL); private: QQueue<QString>queueStr; QTextEdit *textEdit; }; #endif
#include "queue.h" #include <QHBoxLayout> QueueWidget::QueueWidget(QWidget *parent /*= NULL*/) : QWidget(parent) { ///---设置窗口大小 resize(300, 100); ///---入队 queueStr.enqueue("element 1\n"); queueStr.enqueue("element 2\n"); queueStr.enqueue("element 3\n"); ///---textEdit textEdit = new QTextEdit(); ///---出队 while (!queueStr.isEmpty()) { textEdit->insertPlainText(queueStr.dequeue()); } ///---设置布局 QHBoxLayout *hLayout = new QHBoxLayout(); hLayout->addWidget(textEdit); hLayout->setContentsMargins(0, 0, 0, 0); ///---显示布局 setLayout(hLayout); }
#include "queue.h" #include <QtWidgets/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); QueueWidget win; win.show(); return a.exec(); }
QQueue的操作原则是: 先进先出,后进后出。
QQueue入队函数式:enqueue(), 出对函数是:dequeue()。
Head() 功能提供了访问对的第一个数据,但是不会删除第一个数据。
QQueue是继承QList。QList的属性同样适用于QQueue。