日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt修炼手册8_常用的容器类QVector和QList

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt修炼手册8_常用的容器类QVector和QList 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.前言

Qt提供了非常有用的容器類的迭代器類,用于修改、刪除、插入和保存數據。本著學習的角度,重點研究了QVector和QList兩個類。 QT中,具有STL風格的迭代器具有兩種數據類型,分別是只讀訪問模式和讀寫訪問模式。具體見下表:
STL風格的迭代器的運行方式是在數組中使用指針。例如,++運算符,*運算符用于返回迭代器的項。

2.QList類、QLinkedList類和QVector類

在開發一個較高性能需求的應用程序時,我們會比較關注這些容器類的運行效率,下表列出了QList、QLinkedList和QVector容器的時間復雜度比較。

2.1 QList類

QList<T>是迄今為止最常用的容器類,它存儲給定數據類型T的一列數值。
QList不僅提供了可以在列表進行追加的QList::append()和QList::prepend()函數,還提供了在列表中間完成插入操作的函數QList::insert()。
QList<T>維護了一個指針數組,該數組存儲的指針指向QList<T>存儲的列表項的內容。
對于不同的數據類型,QList<T>采取不同的存儲策略,存儲策略有以下幾種。
(1)如果T是一個指針類型或指針大小的基本類型(即該基本類型占有的字節數和指針類型占有的字節數相同),QList<T>會將數值直接存儲在它的數組中。
(2)如果QList<T>存儲對象的指針,則該指針指向實際存儲的對象。
下面舉一個例子:
#include "stdafx.h" #include "QtCore\qdebug.h"int _tmain(int argc, _TCHAR* argv[]) {QList<QString> list;QString str = "I love Qt Programming!";list << str;qDebug()<<list[0]<<endl<<"How are you?"<<endl;return 0; }

2.2?QLinkedList類

QLinkedList<T>是一個鏈式列表,它以非連續的內存塊保存數據。
QLinkedList<T>不能使用下標,只能使用迭代器訪問它的數據項

2.3?QVector類

QVector<T>在相鄰的內存中存儲給定數據類型T的一組數值。
QVector<T>既可以使用下標訪問數據項,也可以使用迭代器訪問數據項。
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Qt修炼手册8_常用的容器类QVector和QList的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。