網站首頁 編程語言 正文
1.概述
Qt提供了多個基于模板的容器類,這些類可以用于存儲指定類型的數據項,例如QStringList就是從QList<QString>繼承的,可以實現對字符串的增、刪等操作。
Qt的容器類分為順序容器和關聯容器。
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
比較常用的容器類,以數組列表的形式實現,在前、后添加數據非常快。以下為常用方法。
插入:insert()
刪除:removeAt()
替換:replace()
移動:move()
添加:append()
2.2QLinkedList
是鏈式列表,數據項不是連續的內存存儲,基于迭代器訪問數據項,插入和刪除數據項操作時間相同
2.3QVector
提供動態數組的功能,與QList接口基本相同,數據項是連續存儲的。
2.4QStack
類似于堆棧,后入先出的特點,push()和pop()用于數據進出棧。
QStack<int> stack;
stack.push(1);
stack.push(2);
stack.push(3);
while(!stack.isEmpty())
stack.pop();
2.5QQueue
類似于隊列,先入先出的特點,enqueue()和dequeue()用于操作數據進出隊列。
QQueue<int> queue;
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
while(!queue.isEmpty())
queue.dequeue();
3.關聯容器類
關聯容器如下所示
- QMap
- QMultiMap
- QHash
- QMultiHash
- QSet
3.1QSet
基于散列表的集合模板類,存儲數據的順序不定,查找速度非常快。
3.2QMap
QMap存儲數據按照鍵的順序來存儲的,一個鍵映射一個值。
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的子類,一個鍵可以對應多個值。
QMultiMap<int,int> map;
map.insert(1,1);
map.insert(1,2);
//map.size() == 2
3.4QHash
基于散列表來實現的,查找速度非常快。
和QMap比較
- QHash查找速度更快
- QMap是按鍵順序排序的,QHash數據項任意排序
3.5QMultiHash
QMultiHash是QHash的子類,用于處理多值映射的類,與QMultiMap類似。
原文鏈接:https://blog.csdn.net/wzz953200463/article/details/125434778
相關推薦
- 2022-10-01 Redis+Caffeine實現分布式二級緩存組件實戰教程_Redis
- 2022-07-26 3dmax2021 中的各種顯示相關如何設置?
- 2023-02-14 Python實現完全數的示例詳解_python
- 2022-12-10 Input系統之InputReader概要性實例分析_Android
- 2022-07-30 Go語言sort包函數使用示例_Golang
- 2022-12-12 Python字典使用技巧詳解_python
- 2022-03-29 詳解C++?的STL迭代器原理和實現_C 語言
- 2022-01-29 fastadmin添加追加字段
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支