Qt -- QQueue用法
以下是一些总结,关于QQueue的容器:
头文件:#include<QQueue>
1、在头文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #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文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #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函数中:
1 2 3 4 5 6 7 8 9 10 11 | #include "mainwindow.h" #include <QApplication> int main( int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } |
基本用法如上。
ps:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!