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

posted @   手磨咖啡  阅读(2217)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示