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

Qt常用容器類的使用

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

1.概述

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

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

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

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

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

2.順序容器類

Qt順序容器類如下所示:

  • QList
  • QLinkedList
  • QVector
  • QStack
  • QQueue

2.1QList

比較常用的容器類,以數(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

類似于堆棧,后入先出的特點(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

類似于隊(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)容器類

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

  • QMap
  • QMultiMap
  • QHash
  • QMultiHash
  • QSet

3.1QSet

基于散列表的集合模板類,存儲(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的子類,一個(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的子類,用于處理多值映射的類,與QMultiMap類似。

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

相關(guān)文章

最新評(píng)論

满城县| 玛多县| 教育| 慈溪市| 道真| 郯城县| 岳阳县| 泰宁县| 沙雅县| 闻喜县| 彭水| 综艺| 工布江达县| 达日县| 吴忠市| 青海省| 两当县| 铜陵市| 红桥区| 扶沟县| 巢湖市| 石楼县| 松滋市| 阿瓦提县| 香港 | 玛多县| 当雄县| 惠东县| 抚松县| 泰和县| 高雄县| 托克托县| 邯郸市| 偏关县| 乐安县| 原阳县| 永德县| 咸宁市| 体育| 苏尼特右旗| 三河市|