主要说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学习笔记常用容器相关推荐

  1. QT学习笔记(八):顺序容器和关联容器

    QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...

  2. QT学习笔记(九):遍历容器-迭代器(iterators)

    QT学习笔记(九):遍历容器-迭代器(iterators) 遍历容器 : 1.Jave风格: 2.STL风格: 3.foreach 关键字: 遍历容器 : 遍历一个容器可以使用迭代器(iterator ...

  3. QT学习笔记(七):定时器事件的3种常用使用方式

    QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...

  4. QT 学习笔记(六)

    文章目录 一.设计器的使用 二.常用控件 1. Containers 容器类 2. Input Widgets 输出控件 3. Display Widgets 显示类控件 三.代码和运行结果 1. 主 ...

  5. Qt学习笔记之MySQL数据库

    一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

  6. Qt学习笔记之数据库

    一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...

  7. Qt学习笔记之 字符串类型小结

    1. Qt常用字符串类型 1.1 QString QString是Unicode编码的字符串,存储一系列16位的QChar,每一个QChar对应一个Unicode 4.0编码的字符,详见<Qt学 ...

  8. QT学习笔记(十六):setwindowflags的属性总结

    QT学习笔记(十六):setwindowflags的属性总结 此枚举类型用于为小部件指定各种窗口系统属性.它们是不常用的,但在一些情况下是必要的.其中一些标志取决于底层窗口管理器是否支持它们. 主要类 ...

  9. QT学习笔记(五):Qt5的8种标准对话框示例

    QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...

最新文章

  1. 【PHPWord】图片
  2. Java正则表达式基础案例和语法
  3. Socket支持多用户并发访问的解决办法
  4. 如何处理My lead fiori应用的buffer问题
  5. matlab r2007课后答案,《MATLAB R2007基础教程》习题答案.doc
  6. 在Jersey 2中进行集成测试自定义验证约束
  7. 云耀服务器切换系统,【计算】云耀服务器-常见操作汇总指南
  8. Java SSM篇2——框架的基本认识
  9. Android - shape圆形画法(oval)
  10. 图像仿射变换之倾斜的python实现
  11. 自定义表单-列表字段的数据源绑定
  12. python图书管理实训报告总结_图书管理系统实训总结
  13. 网站流量PV是什么意思? UV是什么意思?
  14. 《自控力》第七章读书笔记
  15. 微信小程序 17 个人中心和登录 的跳转
  16. 专插本 计算机基础与程序设计 2020届考生纯手敲 C语言与数据结构学习中遇到的所有问题都在这里了,建议直接三连
  17. 2019数博会参会嘉宾数量、层级、范围创历届新高,全球领袖级企业竞相亮相
  18. MATLAB入门实战版
  19. 唐尼vr眼镜好吗_VR怎么看电影?手把手教你用VR眼镜设备看电影的方法
  20. 天龙八部TLBB搭建(三)CentOS7x系列服务器手工环境架设配置

热门文章

  1. CSS Position(定位)
  2. bootstrap 模态窗口按钮位置_Bootstrap 模态框(Modal)插件的使用
  3. 电脑复制粘贴_ALTC 让电脑和手机能“跨屏”互相复制粘贴的免费工具!
  4. gzp解压命令 linux_Linux-压缩解压命令(gzip,zip,tar,bzip)
  5. 文思海辉值得去吗_文思海辉与全球智能自动化领导者Blue Prism结盟!
  6. infopath转换html,Microsoft Tools to Save InfoPath Forms as HTML
  7. java 6 损坏,Java 异常处理六
  8. 五子棋 鼠标 C语言,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
  9. 前端必须学会的5个原生JavaScript对象方法
  10. 如何添加二级标题_怎样给Word文档添加目录?