博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt学习笔记常用容器
阅读量:7212 次
发布时间:2019-06-29

本文共 2941 字,大约阅读时间需要 9 分钟。

主要说Qt的以下几种容器

1.QList<T>

2.QLinkedList<T>

3.Map<T>

和一些常用的容器方法的使用

qSort

qCopy

qFind

1.QList<T>泛型集合是最常用的一种容器

看一下它的常用 操作

添加删除和两个迭代器

QListIterator和QMutableListIterator
#include 
#include
#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QList
listInt; //添加 for(int i =0;i<10;i++) { listInt.append(i); //也可以这样添加元素 //listInt<
iterator(listInt); while(iterator.hasNext()) { qDebug()<
mutableiterator(listInt); mutableiterator.insert(13); mutableiterator.insert(14); mutableiterator.insert(15); while(mutableiterator.hasNext()) { int i= mutableiterator.next(); if(i==2||i==6) { mutableiterator.remove(); } } //查询 foreach (int item, listInt) { qDebug()<

 

2.QLinkedList<T> 

QLinkedList<T>和QList<T>差不多,不同的一点是它是用迭代器做的访问项

也就是说QList<int> list只以通过这样访问它的内容list[i]而QLinkedList不可以只能用Iterator

性能上它要高于QList<T>

#include 
#include
#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QLinkedList
link; link<<1<<2<<2<<3<<4; qDebug()<<"迭代器访问QLinkedListIterator"; QLinkedListIterator
iterator(link); while(iterator.hasNext()) { qDebug()<< iterator.next(); } //删除第一个2 link.removeOne(2); //添加两个3这两种方式一样 link.push_back(3); link.append(3); //删除所有的3 link.removeAll(3); qDebug()<<"普通访问foreach"; foreach (int item, link) { qDebug()<< item; } qDebug()<<"迭代器QMutableLinkedListIterator"; QMutableLinkedListIterator
mutableIter(link); while(mutableIter.hasNext()) { int i= mutableIter.next(); if(i==1) { mutableIter.insert(90); } if(i==4) { mutableIter.remove(); } qDebug()<
a

3Map<T>

map类型是一个键值对 key/value组成 其它的和上边的两个集合没什么区别 

#include 
#include
#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QMap
map; map.insert(1,"a"); map.insert(2,"b"); map.insert(3,"c"); QMutableMapIterator
mutableIte(map); while(mutableIte.hasNext()) { mutableIte.next(); qDebug()<
<<" "<

 

下边说一下常用的集合操作方法

qSort

qCopy

qFind

#include 
#include
#include
#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QList
listStrs; listStrs<<10<<5<<8<<2<<7; qSort(listStrs); foreach (int i, listStrs) { qDebug()<
newVec(5); qCopy(listStrs.begin(),listStrs.end(),newVec.begin()); foreach (int i, newVec) { qDebug()<
::const_iterator iterFin=qFind(listStrs,2); if(iterFin!=listStrs.end()) { qDebug()<<*iterFin; } else { qDebug()<<"notFound!"; } return a.exec();}

 本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/p/3653908.html,如需转载请自行联系原作者

你可能感兴趣的文章
Android Pie提供了自适应供电、神经网络API 1.1等新特性
查看>>
蓝云公布2019云生态战略,如何解决企业上云关键问题?
查看>>
FaaS、PaaS和无服务器体系结构的优势
查看>>
Ceylon语言加入Eclipse基金会
查看>>
一文盘点MWC 2019所有5G设备和研发进展
查看>>
【leetcode】85. Maximal Rectangle 0/1矩阵的最大全1子矩阵
查看>>
网站真分页js代码该怎么写?
查看>>
教你五分钟入门使用html5 svg绘制图形
查看>>
vue-concise-slider vue滑动组件
查看>>
ElectronOCR:基于Electron+React+Tesseract的MACOS下的OCR工具
查看>>
Mysql 架构及优化之-定时计划任务
查看>>
不插即用!配备微信网页授权模块的CodeIgniter应用脚手架
查看>>
HBase存储剖析与数据迁移
查看>>
人工智能高考511分,未来有望考上东京大学!
查看>>
O2O业务都跳不出这五大领域
查看>>
呼之欲出的量子计算机和漫长的最后一公里
查看>>
“九”答不可 | 量子保密,完美无缺?
查看>>
VMware备份研究
查看>>
dotnet调用node.js写的socket服务(websocket/socket/socket.io)
查看>>
Nibiru Open Day,OZO 遇见 DigiArtist 国际数字艺术展
查看>>