以下是一些總結,關於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
