-
Notifications
You must be signed in to change notification settings - Fork 7
/
ch09-00.htm
64 lines (52 loc) · 3.24 KB
/
ch09-00.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>ch09-00</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="thumbnailviewer.css" type="text/css" />
<script src="thumbnailviewer.js" type="text/javascript">
/***********************************************
* Image Thumbnail Viewer Script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
</script>
</head>
<div class="os1">第9章 数据容器</div>
<br />
数据容器(Container Classes)就是数据结构课程里常见的列表、链表、队列、栈、
向量等保存和处理数据的类。Qt 所有的数据容器都是模板类,这样方便处理任何类型的数据,当然这些类构造时要带数值类型。
<br />
Qt 提供了两大类数据容器,第一类是顺序容器,
包括列表 QList、队列 QQueue、链表 QLinkedList、向量 QVector 和栈 QStack 。
顺序容器比较常见,我们根据应用场景举例使用这些顺序容器。
第二类是关联容器,用于保存键值(key-value)映射,关联容器包括
单映射 QMap、多映射 QMultiMap、单哈希映射QHash、多哈希映射 QMultiHash
和集合 QSet。单映射就是一个 key 对应一个 value,多映射是一个 key 对应多个 value。集合类只有 value 值,没有 key。
<br />
Qt 不仅提供了数据容器,还为数据容器提供了方便访问的迭代器,有 Java 风格迭代器类 和 STL 风格的迭代器,功能都是差不多,使用习惯不同而已。
<br />
<br />
本章 9.1 节介绍三种顺序容器,列表 QList、队列 QQueue 和链表 QLinkedList。<br />
9.2 节介绍剩下的两种顺序容器,向量 QVector、栈 QStack ,并归纳一下顺序容器操作的算法复杂度。<br />
9.3 节介绍两种基于红黑树的关联容器,单映射 QMap 和多映射 QMultiMap 。
<br />
9.4 节介绍三种基于哈希表的关联容器,单哈希映射 QHash、多哈希映射 QMultiHash 和集合 QSet,
集合 QSet 就是数学上的集合,比如求交集∩、求并集∪等。该节最后归纳一下关联容器操作的算法复杂度。
<br />
9.5 节列举数据容器对应的迭代器,Java 风格迭代器是单独的类,STL 风格的迭代器是数据容器类自己内嵌的,各个迭代器的用法很相似,到时候挑几个编写示例。
<br />
<br />
<br />
<br />
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 40%;"><div style="text-align: center;"><a href="ch08-04.htm"><img class="pic" style="width: 32px; height: 32px;" alt="prev" src="images/pics/prev.png" /></a></div></td>
<td style="width: 20%;"><div style="text-align: center;"><a href="contents.htm"><img class="pic" style="width: 32px; height: 32px;" alt="contents" src="images/pics/contents.png" /></a></div></td>
<td style="width: 40%;"><div style="text-align: center;"><a href="ch09-01.htm"><img class="pic" style="width: 32px; height: 32px;" alt="next" src="images/pics/next.png" /></a></div></td>
</tr>
</tbody>
</table>
</html>