• Qt -- QQueue用法


    以下是一些总结,关于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

  • 相关阅读:
    简单工厂、工厂方法和抽象工厂的学习笔记
    单一职责原则,开-闭原则,依赖倒置原则
    我对面向对象设计的理解——Java接口和Java抽象类
    高可用与负载均衡的区别
    应用交付、负载均衡(Load balancing)、高可用、F5
    四种常见的 POST 提交数据方式
    Git fetch和git pull的区别
    苹果Mac OS X显示隐藏文件的方法
    Appium教程---Client/Server Architecture
    UNIX网络编程——使用线程的TCP回射服务器程序
  • 原文地址:https://www.cnblogs.com/zzzsj/p/14549708.html
Copyright © 2020-2023  润新知