QList、QVector、QMap容器类

QList<QString> list,创建一个列表对象,存储一列QString类型的值。

list<<str<<str1<<str2通过操作符 "<<" 将字符串存储在该列表中

函数QList::append(const T&value)在列表末尾插入值。

QList<QString> list;

list.append("one");

list.append("two");

list.append("three");

// list: ["one", "two", "three"]

  1. 函数QList::append(const QList<T>&value)在列表末尾插入一个列表
  2. 函数QList::at(int i)返回列表中第i+1个元素,list.at(0)为第一个元素
  3. 函数QList::back()返回列表中的最后一个元素
  4. 函数QList::push_back(const T &value)把指定元素插入到列表末尾
  5. 函数QList::pop_back()把最后一个元素从列表中删除
  6. 函数QList::begin()返回STL样式迭代器指向列表中的第一个元素(简单来说就是第一个元素的指针)
  7. 函数QList::end()返回列表中的最后一个元素的后一个元素指针(iterator类型指针)
  8. 函数QList::rbegin()返回列表中的最后一个元素指针
  9. 函数QList::clear()移除列表所有元素
  10. 函数QList::contains(const T &value)判断列表中是否包含指定元素
  11. 函数QList::count()返回列表中元素的个数
  12. 函数QList::count(const T &value)返回列表中指定元素的个数
  13. 函数QList::empty()如果列表元素为空则返回true
  14. 函数QList::endsWith(const T &value)判断指定元素是否是最后一个元素
  15. 函数QList::erase(iterator pos)移除指定元素
  16. 函数QList::mid(int pos, int length = -1)返回一个子list列表,如果length = -1则子list包含父list从索引位置到末尾的所有元素,否则子list包含父list从索引位置数起,lenght个元素

QVector用法基本和QList用法相同

区别:一个是随机存取,一个是连续存取,所以list插入删除很快,vector查询很快。

但是vector有个地方一定要注意:

vector:如果你添加元素,但是vector的容量(是容量,不是大小,容量比大小大,会预先多分配空间)不够的话,系统就会重新分配一段内存,然后把原先的内容全部拷贝过去,然后删除原先的内容。所以,如果你设定了一个纸箱vector的指针,或者说迭代器,在你添加元素之后,这个指针(迭代器)需要重新计算

QMap<Key &key, const T &value>

示例:

QMap<QString, int> map;

map["one"] = 1;//使用重载符[]往map列表插入一个元素

key = "one",value = 1;

map.insert("twelve", 12);//往map列表插入一个元素

//创建一个关联map的迭代器,遍历map列表元素

QMapIterator<QString,int> i(map);

while (i.hasNext()) {

i.next();

qDebug<< i.key() << ": " << i.value() << endl;

}

QList、QVector、QMap容器类相关推荐

  1. 百科不全书之QT常用函数

    参考链接: 璎珞qc:Qt之QImage类. 沙振宇:Qt输出打印信息的日志到文件(两种方式). tandesir:Qt测算程序运行时间. 半生瓜のblog [QT]QT容器 百科不全书之QT常用函数 ...

  2. 1.QT中的容器QVector,QList,QSet,QMap,QQueue,QStack,QMultiMap,QSingleList等

    1  新建一个项目 在pro文件中只需要加上CONFIG += C++11 main.cpp #include <QMap> int main() { QMap<int,QStrin ...

  3. 遍历qvector_Qt容器类——1. QList类、QLinkedList类和QVector类

    在开发一个较高性能需求的应用程序时,程序员会比较关注这些容器类的运行效率,表2.1列出了QList.QLinkedList和QVector容器的时间复杂度比较. 1.QList类 QList是迄今为止 ...

  4. Qt工作笔记-QVector与QMap查找效率实战

    因为项目使用QVector,太慢了,听说QMap比QVector查找时快,所以写一个小程序试试: 从30000个数据中找5000个 程序运行截图如下: QVector QMap 一样的数据,找一样的数 ...

  5. Qt工作笔记-QList (链表) QVector (数组)【转载】

    原文地址:https://blog.csdn.net/qq_33266987/article/details/53333373 C++中的list 和 vector (1). stl提供了三个最基本的 ...

  6. QList (链表) QVector (数组)

    QList (链表) & QVector (数组) C++中的list和vector stl提供了三个最基本的容器:vector/list/deque. vector和built-in数组类似 ...

  7. Qt总结之九:QMap中嵌套QList

    前言 QMap和QList都支持 QList<T>::iterator 迭代器 一.初识 #include <QtCore/QCoreApplication>// #inclu ...

  8. Qt——容器类(译)

    注:本文是我对Qt官方文档的翻译,错误之处还请指正. 原文链接:Container Classes 介绍 Qt库提供了一套通用的基于模板的容器类,可以用这些类存储指定类型的项.比如,你需要一个大小可变 ...

  9. Qt容器类(总结)(新发现的QQueue和QStack,注意全都是泛型)

     Introduction Qt库提供了一组基于模板的一般化的容器类.这些容器可以存储指定的类型的元素.例如,如果你需要一个可变大小的Qstring数组,可以用QVector<QString ...

最新文章

  1. Android Dialog 关闭的时候标题栏闪烁一下的处理方法
  2. 一次愉快的 bug 修复经历
  3. C++求数组中的逆序对
  4. Linux下清理内存和Cache方法
  5. Android FrameWork——Touch事件派发过程详解
  6. mysql分页查询limit_MySQL查询语句(where,group by,having,order by,limit)
  7. 【基本算法--高精度计算】大整数相加
  8. java 混淆 js_Vue javascript和css混淆
  9. 分词之后的如何做特征选择_抑郁症康复之后,如何避免复发?我们可以从这几方面来做...
  10. poj 1459-Power Network解题报告
  11. python相对路径-Python中的绝对路劲和相对路径
  12. caffe 实践程序2——用细分的方法实现caffe中cifar100的识别
  13. 处理数码照片的计算机需要配置,用Photoshop处理数码照片_计算机软件及应用_IT计算机_专业资料.doc...
  14. 前端-优雅的VueJS
  15. 庆科EMW3080 mxos开发环境搭建helloworld编译
  16. 通俗科普:弦论要求空间必须是25维的解释
  17. lvs负载均衡之配置lvs-tun模式的httpd负载集群
  18. 找出字符串中第一个不重复的字符
  19. android 4g wifi热点,WIFI热点部署+
  20. 如何高效定义和验证restful请求的参数

热门文章

  1. Webpack + vue + es6 安装
  2. DirectX11 学习笔记3 - 创建一个立方体 和 轴
  3. Javascrpt无刷新文件上传
  4. 在线文本去重统计工具
  5. ubuntu文件夹建立软链接方法
  6. 使用 Kotlin Script 自定义实现项目开发脚手架
  7. react native快速上手
  8. 闪修侠、极客修、千机网,手机维修选哪家?
  9. nginx一些重要配置说明
  10. JVM 对象引用标记 与 内存回收算法