最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt常用容器類(lèi)的使用

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

1.概述

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

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

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

例:定義一個(gè)QList<QString> 容器

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

2.順序容器類(lèi)

Qt順序容器類(lèi)如下所示:

  • QList
  • QLinkedList
  • QVector
  • QStack
  • QQueue

2.1QList

比較常用的容器類(lèi),以數(shù)組列表的形式實(shí)現(xiàn),在前、后添加數(shù)據(jù)非常快。以下為常用方法。

插入:insert()

刪除:removeAt()

替換:replace()

移動(dòng):move()

添加:append()

2.2QLinkedList

是鏈?zhǔn)搅斜?,?shù)據(jù)項(xiàng)不是連續(xù)的內(nèi)存存儲(chǔ),基于迭代器訪問(wèn)數(shù)據(jù)項(xiàng),插入和刪除數(shù)據(jù)項(xiàng)操作時(shí)間相同

2.3QVector

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

2.4QStack

類(lèi)似于堆棧,后入先出的特點(diǎn),push()和pop()用于數(shù)據(jù)進(jìn)出棧。

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

2.5QQueue

類(lèi)似于隊(duì)列,先入先出的特點(diǎn),enqueue()和dequeue()用于操作數(shù)據(jù)進(jìn)出隊(duì)列。

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

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

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

  • QMap
  • QMultiMap
  • QHash
  • QMultiHash
  • QSet

3.1QSet

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

3.2QMap

QMap存儲(chǔ)數(shù)據(jù)按照鍵的順序來(lái)存儲(chǔ)的,一個(gè)鍵映射一個(gè)值。

    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的子類(lèi),一個(gè)鍵可以對(duì)應(yīng)多個(gè)值。

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

3.4QHash

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

和QMap比較

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

3.5QMultiHash

QMultiHash是QHash的子類(lèi),用于處理多值映射的類(lèi),與QMultiMap類(lèi)似。

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

相關(guān)文章

最新評(píng)論

富顺县| 旺苍县| 遂平县| 河津市| 正宁县| 东乡县| 建水县| 呼图壁县| 中牟县| 易门县| 内丘县| 临朐县| 专栏| 鸡泽县| 沙田区| 长顺县| 宁阳县| 济南市| 武夷山市| 四平市| 台南县| 湄潭县| 丽江市| 武宁县| 邮箱| 望城县| 洛阳市| 裕民县| 株洲县| 吴旗县| 常德市| 巴彦淖尔市| 当涂县| 固安县| 建瓯市| 盐亭县| 古交市| 吉水县| 兴宁市| 稷山县| 四平市|