以下是一些总结,关于QQueue的容器:
头文件:#include<QQueue>
1、在头文件中:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QQueue> namespace Ui { class MainWindow; } typedef struct data { unsigned int a; double b; double c; }DATA; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); QQueue<DATA> DataBuffer; private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
在.cpp文件中:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { //结构体的用法 DATA data; data.a = 1; data.b = 3.12; data.c = 4.18; DataBuffer.enqueue(data);//将结构体里面的数进行插入进去,也就是入队 //以下是一种遍历的方式 for each (auto data in DataBuffer) { qDebug()<< data.a; qDebug()<< data.b; qDebug()<< data.c; } //普通变量的用法 QQueue<int> Q; for(int i = 0 ; i < 5; i++) { Q.enqueue(i);//入队的方法 } qDebug()<<Q;//结果为(0, 1, 2, 3, 4) Q.dequeue(); qDebug()<<Q;//结果为(1, 2, 3, 4),这样得到的结果就是删除了第一个 }
在main函数中:
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
基本用法如上。
ps:
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 ); //以数组形式访问队列元素
https://blog.csdn.net/littlehero_121/article/details/100122047
https://www.cnblogs.com/ybqjymy/p/12204117.html
https://www.jianshu.com/p/bfebd8f39ae9