zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    vue使用elementui合并table
    使用layui框架导出table表为excel
    vue使用elementui框架,导出table表格为excel格式
    前台传数据给后台的几种方式
    uni.app图片同比例缩放
    我的博客
    【C语言】取16进制的每一位
    SharePoint Solution 是如何部署的呢 ???
    无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
    SharePoint 判断用户在文件夹上是否有权限的方法
  • 原文地址:https://www.cnblogs.com/zzzsj/p/14549708.html
Copyright © 2011-2022 走看看