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

本文共 2862 字,大约阅读时间需要 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();}

 

 

转载地址:http://dtrix.baihongyu.com/

你可能感兴趣的文章
ASP.NET中 DataList(数据列表)的使用前台绑定
查看>>
Entity Framework Code First 的用途 和 原理 -摘自网络
查看>>
百度api基本功能与dragging事件的实现
查看>>
iphone开发必知点之--app本地化
查看>>
详细介绍ORACLE sqlplus命令(转)
查看>>
Eclipse SDK更新带来的问题及其总结
查看>>
树莓派使用usb无线适配器
查看>>
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
C语言字节对齐
查看>>
浅谈Exchange Server邮件存储系统-原理篇(1)
查看>>
Android 使用HTML布局页面
查看>>
[置顶] Java字符编码解析
查看>>
一个最简单的Linux内核模块
查看>>
主域控制器的安装与配置步骤与方法
查看>>
调整Flash与div的位置关系
查看>>
javascript的dom选择器
查看>>
Objective - c 创建二维数组
查看>>
〖Android〗/system/etc/fallback_fonts.xml
查看>>
30个美丽干净的,帮助用户专注于内容的网站设计
查看>>
高级Bash脚本编程指南(27):文本处理命令(三)
查看>>