欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt常用容器類的使用

 更新時間:2022年06月27日 10:21:03   作者:Mr.codeee  
本文主要介紹了Qt常用容器類的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.概述

Qt提供了多個基于模板的容器類,這些類可以用于存儲指定類型的數(shù)據(jù)項,例如QStringList就是從QList<QString>繼承的,可以實現(xiàn)對字符串的增、刪等操作。

Qt的容器類分為順序容器和關(guān)聯(lián)容器。

Qt的容器類比STL更輕巧、安全和容易使用,并且還是線程安全的。

例:定義一個QList<QString> 容器

    QList<QString> str;
    str.append("A");
    str.append("B");
    str.append("C");

2.順序容器類

Qt順序容器類如下所示:

  • QList
  • QLinkedList
  • QVector
  • QStack
  • QQueue

2.1QList

比較常用的容器類,以數(shù)組列表的形式實現(xiàn),在前、后添加數(shù)據(jù)非??臁R韵聻槌S梅椒?。

插入:insert()

刪除:removeAt()

替換:replace()

移動:move()

添加:append()

2.2QLinkedList

是鏈式列表,數(shù)據(jù)項不是連續(xù)的內(nèi)存存儲,基于迭代器訪問數(shù)據(jù)項,插入和刪除數(shù)據(jù)項操作時間相同

2.3QVector

提供動態(tài)數(shù)組的功能,與QList接口基本相同,數(shù)據(jù)項是連續(xù)存儲的。

2.4QStack

類似于堆棧,后入先出的特點,push()和pop()用于數(shù)據(jù)進出棧。

    QStack<int> stack;
    stack.push(1);
    stack.push(2);
    stack.push(3);
 
    while(!stack.isEmpty())
        stack.pop();

2.5QQueue

類似于隊列,先入先出的特點,enqueue()和dequeue()用于操作數(shù)據(jù)進出隊列。

    QQueue<int> queue;
    queue.enqueue(1);
    queue.enqueue(2);
    queue.enqueue(3);
 
    while(!queue.isEmpty())
        queue.dequeue();

3.關(guān)聯(lián)容器類

關(guān)聯(lián)容器如下所示

  • QMap
  • QMultiMap
  • QHash
  • QMultiHash
  • QSet

3.1QSet

基于散列表的集合模板類,存儲數(shù)據(jù)的順序不定,查找速度非??臁?/p>

3.2QMap

QMap存儲數(shù)據(jù)按照鍵的順序來存儲的,一個鍵映射一個值。

    QMap<int,int> map;
    map[1] = 1;
    map[2] = 2;
    map[3] = 3;
 
    //或者使用insert
    QMap<int,int> map;
    map.insert(1,1);
    map.insert(2,2);
    map.insert(3,3);

查找

int num = map[1];
 
//或者
int num2 = map.value[2];

3.3QMultiMap

是QMap的子類,一個鍵可以對應(yīng)多個值。

    QMultiMap<int,int> map;
    map.insert(1,1);
    map.insert(1,2);
    //map.size() == 2 

3.4QHash

基于散列表來實現(xiàn)的,查找速度非???。

和QMap比較

  • QHash查找速度更快
  • QMap是按鍵順序排序的,QHash數(shù)據(jù)項任意排序

3.5QMultiHash

QMultiHash是QHash的子類,用于處理多值映射的類,與QMultiMap類似。

到此這篇關(guān)于Qt常用容器類的使用的文章就介紹到這了,更多相關(guān)Qt 容器類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實現(xiàn)掃雷小游戲

    C++實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • OpenGL實現(xiàn)中點劃線法

    OpenGL實現(xiàn)中點劃線法

    這篇文章主要為大家詳細介紹了OpenGL實現(xiàn)中點劃線法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Swift編程中的泛型解析

    Swift編程中的泛型解析

    這篇文章主要介紹了Swift編程中的泛型解析,是Swift入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • 基于C中一個行壓縮圖的簡單實現(xiàn)代碼

    基于C中一個行壓縮圖的簡單實現(xiàn)代碼

    首先簡單說一下什么是行壓縮圖,其實嚴格意義上應(yīng)該是行壓縮矩陣
    2013-05-05
  • C++多線程傳參的實現(xiàn)方法

    C++多線程傳參的實現(xiàn)方法

    本文主要介紹了C++多線程傳參的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • C指針原理教程之C指針基礎(chǔ)

    C指針原理教程之C指針基礎(chǔ)

    指針是一個特殊的變量,它里面存儲的數(shù)值被解釋成為內(nèi)存里的一個地址。要搞清一個指針需要搞清指針的四方面的內(nèi)容:指針的類型、指針所指向的類型、指針的值或者叫指針所指向的內(nèi)存區(qū)、指針本身所占據(jù)的內(nèi)存區(qū)。
    2019-02-02
  • Qt實現(xiàn)串口助手

    Qt實現(xiàn)串口助手

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)串口助手,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 使用C語言解決字符串全排列問題

    使用C語言解決字符串全排列問題

    這篇文章主要介紹了使用C語言解決字符串全排列問題,文中包括了一道ACM相關(guān)的競賽題目作為實例,需要的朋友可以參考下
    2015-08-08
  • Opencv LBPH人臉識別算法詳解

    Opencv LBPH人臉識別算法詳解

    這篇文章主要為大家詳細介紹了Opencv LBPH人臉識別算法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • c++ 隊列相關(guān)知識總結(jié)

    c++ 隊列相關(guān)知識總結(jié)

    這篇文章主要介紹了c++ 隊列相關(guān)知識總結(jié),幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下
    2021-03-03

最新評論