Qt学习笔记常用容器
主要说Qt的以下几种容器
1.QList<T>
2.QLinkedList<T>
3.Map<T>
和一些常用的容器方法的使用
qSort
qCopy
qFind
1.QList<T>泛型集合是最常用的一种容器
看一下它的常用 操作
添加删除和两个迭代器
QListIterator和QMutableListIterator
#include <QCoreApplication> #include<QList> #include<QDebug> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QList<int> listInt;//添加for(int i =0;i<10;i++){listInt.append(i);//也可以这样添加元素//listInt<<i; }//删除qDebug()<<"删除3";listInt.removeAt(3);//查询foreach (int item, listInt) {qDebug()<<item;}qDebug()<<"Iterator";//迭代器QListIterator<int> iterator(listInt);while(iterator.hasNext()){qDebug()<<iterator.next();if(iterator.hasNext())qDebug()<<"the Next is :"<<iterator.peekNext();}//返转 iterator.toBack();while(iterator.hasPrevious()){qDebug()<<iterator.previous();}qDebug()<<"可变迭代器QMutableListIterator";//可变的迭代器QMutableListIterator<int> 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()<<item;}return a.exec(); }
2.QLinkedList<T>
QLinkedList<T>和QList<T>差不多,不同的一点是它是用迭代器做的访问项
也就是说QList<int> list只以通过这样访问它的内容list[i]而QLinkedList不可以只能用Iterator
性能上它要高于QList<T>
#include <QCoreApplication> #include<QLinkedList> #include<QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QLinkedList<int> link;link<<1<<2<<2<<3<<4;qDebug()<<"迭代器访问QLinkedListIterator";QLinkedListIterator<int> iterator(link);while(iterator.hasNext()){qDebug()<< iterator.next();}//删除第一个2link.removeOne(2);//添加两个3这两种方式一样link.push_back(3);link.append(3);//删除所有的3link.removeAll(3);qDebug()<<"普通访问foreach";foreach (int item, link) {qDebug()<< item;}qDebug()<<"迭代器QMutableLinkedListIterator";QMutableLinkedListIterator<int> mutableIter(link);while(mutableIter.hasNext()){int i= mutableIter.next();if(i==1){mutableIter.insert(90);}if(i==4){mutableIter.remove();}qDebug()<<i;}qDebug()<<"迭代器QMutableLinkedListIterator重新访问";mutableIter.toFront();while(mutableIter.hasNext()){int i= mutableIter.next();qDebug()<<i;}//mutablereturn a.exec(); }
a
3Map<T>
map类型是一个键值对 key/value组成 其它的和上边的两个集合没什么区别
#include <QCoreApplication> #include<QMap> #include<QDebug> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QMap<int,QString> map;map.insert(1,"a");map.insert(2,"b");map.insert(3,"c");QMutableMapIterator<int,QString> mutableIte(map);while(mutableIte.hasNext()){mutableIte.next();qDebug()<<mutableIte.key()<<" "<<mutableIte.value();}return a.exec(); }
下边说一下常用的集合操作方法
qSort
qCopy
qFind
#include <QCoreApplication> #include<QList> #include<QDebug> #include<QVector> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QList<int> listStrs;listStrs<<10<<5<<8<<2<<7;qSort(listStrs);foreach (int i, listStrs) {qDebug()<<i;}qDebug()<<"____________________________";listStrs.clear();listStrs<<10<<5<<8<<2<<7;qSort(listStrs.begin()+1,listStrs.end()-1);foreach (int i, listStrs) {qDebug()<<i;}qDebug()<<"______________qCopy______________";QVector<int> newVec(5);qCopy(listStrs.begin(),listStrs.end(),newVec.begin());foreach (int i, newVec) {qDebug()<<i;}qDebug()<<"______________qFind______________";listStrs.clear();listStrs<<2<<5<<8<<2<<7;QList<int>::const_iterator iterFin=qFind(listStrs,2);if(iterFin!=listStrs.end()){qDebug()<<*iterFin;}else{qDebug()<<"notFound!";}return a.exec(); }
Qt学习笔记常用容器相关推荐
- QT学习笔记(八):顺序容器和关联容器
QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...
- QT学习笔记(九):遍历容器-迭代器(iterators)
QT学习笔记(九):遍历容器-迭代器(iterators) 遍历容器 : 1.Jave风格: 2.STL风格: 3.foreach 关键字: 遍历容器 : 遍历一个容器可以使用迭代器(iterator ...
- QT学习笔记(七):定时器事件的3种常用使用方式
QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...
- QT 学习笔记(六)
文章目录 一.设计器的使用 二.常用控件 1. Containers 容器类 2. Input Widgets 输出控件 3. Display Widgets 显示类控件 三.代码和运行结果 1. 主 ...
- Qt学习笔记之MySQL数据库
一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...
- Qt学习笔记之数据库
一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...
- Qt学习笔记之 字符串类型小结
1. Qt常用字符串类型 1.1 QString QString是Unicode编码的字符串,存储一系列16位的QChar,每一个QChar对应一个Unicode 4.0编码的字符,详见<Qt学 ...
- QT学习笔记(十六):setwindowflags的属性总结
QT学习笔记(十六):setwindowflags的属性总结 此枚举类型用于为小部件指定各种窗口系统属性.它们是不常用的,但在一些情况下是必要的.其中一些标志取决于底层窗口管理器是否支持它们. 主要类 ...
- QT学习笔记(五):Qt5的8种标准对话框示例
QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...
最新文章
- 【PHPWord】图片
- Java正则表达式基础案例和语法
- Socket支持多用户并发访问的解决办法
- 如何处理My lead fiori应用的buffer问题
- matlab r2007课后答案,《MATLAB R2007基础教程》习题答案.doc
- 在Jersey 2中进行集成测试自定义验证约束
- 云耀服务器切换系统,【计算】云耀服务器-常见操作汇总指南
- Java SSM篇2——框架的基本认识
- Android - shape圆形画法(oval)
- 图像仿射变换之倾斜的python实现
- 自定义表单-列表字段的数据源绑定
- python图书管理实训报告总结_图书管理系统实训总结
- 网站流量PV是什么意思? UV是什么意思?
- 《自控力》第七章读书笔记
- 微信小程序 17 个人中心和登录 的跳转
- 专插本 计算机基础与程序设计 2020届考生纯手敲 C语言与数据结构学习中遇到的所有问题都在这里了,建议直接三连
- 2019数博会参会嘉宾数量、层级、范围创历届新高,全球领袖级企业竞相亮相
- MATLAB入门实战版
- 唐尼vr眼镜好吗_VR怎么看电影?手把手教你用VR眼镜设备看电影的方法
- 天龙八部TLBB搭建(三)CentOS7x系列服务器手工环境架设配置
热门文章
- CSS Position(定位)
- bootstrap 模态窗口按钮位置_Bootstrap 模态框(Modal)插件的使用
- 电脑复制粘贴_ALTC 让电脑和手机能“跨屏”互相复制粘贴的免费工具!
- gzp解压命令 linux_Linux-压缩解压命令(gzip,zip,tar,bzip)
- 文思海辉值得去吗_文思海辉与全球智能自动化领导者Blue Prism结盟!
- infopath转换html,Microsoft Tools to Save InfoPath Forms as HTML
- java 6 损坏,Java 异常处理六
- 五子棋 鼠标 C语言,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
- 前端必须学会的5个原生JavaScript对象方法
- 如何添加二级标题_怎样给Word文档添加目录?