<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="css/stdlayout.css" type="text/css">
<link rel="stylesheet" href="css/print.css" type="text/css">
<meta content="text/html; charset=Big5" http-equiv="content-type">
<title>循序容器(QVector、QLinkedList、QList...)</title>
</head>
<body>
<h3><a href="http://caterpillar.onlyfun.net/Gossip/index.html">From
Gossip@caterpillar</a></h3>
<h1><a href="Qt4Gossip.html">Qt4 Gossip: 循序容器(QVector、QLinkedList、QList...)</a></h1>
<table style="text-align: left; width: 946px; height: 32px;" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="width: 676px; vertical-align: top;"> <small>QVector、
QLinkedList與QList是Qt所提供的幾個常用容器類別。QVector將項目(item)儲存在鄰接的記憶體空間之中,提供基於索引
(index-based)存取方式的容器類別。QLinkedList以鏈結(Linked)的方式儲存項目,提供基於迭代器(iterator-
based)存取方式的容器類別。QList提供基於</small><small>索引的</small><small>快速</small><small>存取容器類別,內部使用指標陣列,可提供快速插入及移除項目。<br>
<br>
首先來看看QVector的基本使用方式,建立一個可容納兩個元素的QVector,並使用索引方式存取元素值:<br>
</small>
<div style="margin-left: 40px;"><small style="font-family: Courier New,Courier,monospace; font-weight: bold;">QVector<double> vect(2);</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">vect[0] = 1.0;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">vect[1] = 2.0;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">for (int i = 0; i < vect.count(); ++i) {</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;"> cout << vect[i] << endl;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">}<br>
<br>
</small><small style="font-family: Courier New,Courier,monospace; font-weight: bold;">for (int i = 0; i < vect.count(); ++i) {</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;"> cout << vect.at(i) << endl;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">}</small><br>
</div>
<small><br>
要使用索引方式設定元素,必須先配置好夠長的空間,否則會發生超出索引範圍的錯誤,</small><small>使用[]運算子指定索引存取的方式是比較方便,但在某些場合下,使用at()方法會較有效率一些,這涉及Qt的隱式共享機制,稍後再作介紹。<br>
</small><small></small><small><span class="postbody"><br>
</span></small><small>您也可以使用QVector的append()方法來加入元素,使用remove()方法來移除元素,使用insert()方法來插入元素,例如append()的使用如下:<br>
</small>
<div style="margin-left: 40px;"><small style="font-family: Courier New,Courier,monospace;"><span style="font-weight: bold;">vect.append(3.0);</span></small><br style="font-weight: bold; font-family: Courier New,Courier,monospace;">
<small style="font-family: Courier New,Courier,monospace;"><span style="font-weight: bold;">vect.append(4.0);</span></small><br>
</div>
<small><br>
或者是使用<<運算子附加元素:<br>
</small>
<div style="margin-left: 40px;"><small style="font-family: Courier New,Courier,monospace; font-weight: bold;">vect << 5.0 << 6.0;</small><br>
</div>
<small><br>
QVector也重載了一些其它的運算子,以及提供了一些其它可用的方法,請查詢Qt線上文件有關於QVector的介紹。QVector提供的是鄰接的
記憶體空間以存取物件,所以對於循序存取或使用索引,效率較高,但如果要插入或移除元素時,效率就會低落。QVector的子類別QStack提供了
push()、pop()與top()等方法,方便您進行堆疊結構的物件管理。<br>
<br>
對於需要經常要在容器中插入或移除元件,您可以使用QLinkedList以提高存取效率,它不提供基於索引的存取方式,而是基於迭代器的存取方式,稍後會介紹迭代器的使用,以下先來看看QList。<br>
<br>
QList提供的是基於索引的存取方式,其內部實作使用了指標陣列,陣列中每個指標指向所要儲存的元素,結合了QVector與QLinkedList的
優點,提供快速存取與插入、移除,其索引存取方式或可用的方法與QVector是類似的,也可以使用<<運算子來附加元素,例如:<br>
</small>
<div style="margin-left: 40px;"><small style="font-family: Courier New,Courier,monospace; font-weight: bold;">QList<QString> list;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">list << "caterpillar" << "momor" << "bush";<br>
<br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
</small><small style="font-family: Courier New,Courier,monospace; font-weight: bold;">for(int i = 0; i < list.size(); ++i) {</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;"> cout << list[i].toAscii().data() << endl;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">}</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">cout << endl;</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;"> </small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">for(int i = 0; i < list.size(); ++i) {</small><br style="font-family: Courier New,Courier,monospace; font-weight: bold;">
<small style="font-family: Courier New,Courier,monospace; font-weight: bold;">&n
没有合适的资源?快使用搜索试试~ 我知道了~
Qt4Gossip.zip_QT模块_qt4 call_xxxxuuuxx
共158个文件
jpg:78个
html:74个
png:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 199 浏览量
2022-09-24
17:18:52
上传
评论
收藏 1.51MB ZIP 举报
温馨提示
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。
资源推荐
资源详情
资源评论
收起资源包目录
Qt4Gossip.zip_QT模块_qt4 call_xxxxuuuxx (158个子文件)
print.css 3KB
stdlayout.css 2KB
caterpillar_smaill.gif 1KB
SequentialContainer.html 34KB
DragExecAccept.html 30KB
QSqlQueryModelQSqlTableModel.html 24KB
IsAccepted.html 21KB
QMutexQMutexLocker.html 19KB
Qt4Gossip.html 19KB
AssociativeContainer.html 17KB
TranslateApplication.html 17KB
QSqlQuery.html 17KB
CustomSignalSlot.html 16KB
QString.html 15KB
QInputDialogQMessageBox.html 15KB
QDataStream.html 14KB
QReadWriteLockQSemaphore.html 14KB
GenericAlgorithm.html 14KB
QtResourceSystem.html 13KB
ComplexLayout.html 13KB
QThreadStorage.html 11KB
QWaitCondition.html 11KB
FirstQt.html 11KB
QTreeWidgetQTreeWidgetItem.html 10KB
I18NSelectChange.html 10KB
QtDesignerABC.html 10KB
SimpleSignalSlot-2.html 10KB
QTcpSocket.html 9KB
QFileDialog.html 9KB
QTextStream.html 9KB
QtMySQL.html 9KB
QPixmapQBitmapQImageQPicture.html 9KB
QTcpServer.html 8KB
DragDropEvent.html 8KB
QColorDialogQFontDialog.html 8KB
UseUnicode.html 8KB
WindowsInstallQt4.html 8KB
QPainter.html 8KB
CustomEvent.html 8KB
QHttp.html 8KB
QGridLayout.html 8KB
StopThread.html 8KB
ViewClass.html 8KB
QMainWindow.html 8KB
QHBoxLayoutQVBoxLayout.html 8KB
EventTypeHandler.html 7KB
EventFilter.html 7KB
QMatrix.html 7KB
QThread.html 7KB
QWizard.html 7KB
QTextEdit.html 6KB
SimpleSignalSlot-1.html 6KB
QPrinter.html 6KB
QFtp.html 6KB
QPushButton.html 6KB
QScrollBar.html 6KB
QTimer.html 6KB
QListWidgetQListWidgetItem.html 6KB
QStackedLayout.html 6KB
CustomLayoutManager.html 6KB
QCheckBoxQRadioButton.html 5KB
QSplitter.html 5KB
QMdiArea.html 5KB
QFile.html 5KB
QProgressBar.html 5KB
QLineEdit.html 5KB
QTableWidgetQTableWidgetItem.html 5KB
QFileInfoQDir.html 5KB
QSplashScreen.html 5KB
QScrollArea.html 4KB
QComboBox.html 4KB
QTabWidget.html 4KB
CustomDialog.html 3KB
QtReferenceExample.html 3KB
DisplayChinese.html 3KB
QClipboard.html 3KB
template.html 2KB
QMatrix-1.jpg 90KB
QtDesignerABC-3.jpg 88KB
QtDesignerABC-2.jpg 84KB
QtReferenceExample-1.jpg 74KB
QInputDialogQMessageBox-9.jpg 67KB
QPainter-3.jpg 58KB
TranslateApplication-3.jpg 58KB
QSplitter-1.jpg 51KB
ViewClass-3.jpg 47KB
QFileDialog-1.jpg 46KB
QColorDialogQFontDialog-1.jpg 44KB
QColorDialogQFontDialog-3.jpg 41KB
QFileDialog-2.jpg 41KB
QPrinter-1.jpg 38KB
QMdiArea-1.jpg 37KB
QTextEdit-1.jpg 36KB
QTreeWidgetQTreeWidgetItem-1.jpg 31KB
QtDesignerABC-1.jpg 30KB
QWizard-1.jpg 25KB
QPainter-1.jpg 25KB
ViewClass-2.jpg 24KB
QPixmapQBitmapQImageQPicture-1.jpg 24KB
QMainWindow-1.jpg 23KB
共 158 条
- 1
- 2
资源评论
周楷雯
- 粉丝: 91
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- vue3和ue5.3进行通信
- java银行帐目管理系统(源代码+论文).zip
- 2003-2020年中国31省对外直接投资流量数据全集:各省OFDI流量详录-最新出炉.zip
- javaweb-shanyu01项目web文件夹
- 中国品牌日研究特辑-数字经济时代下中国品牌高质量发展之用户趋势.pdf
- im即时通讯app软件开发语音海外社交聊天视频交友app群聊搭建源码
- 2024-2025年全球客户体验卓越报告:超越喧嚣借力AI打造卓越客户体验.pdf
- minio arm64 docker镜像包
- 中文大模型基准测评2024年10月报告-2024年度中文大模型阶段性进展评估.pdf
- 使用 AWR 进行 Exadata 性能诊断
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功