概要:本期主要讲解Qt中QVector容器类的常用接口。

一、简介:

头文件:#include<QVector>
模块: QT += core
功能:主要用于数据存储,可以类比C++中的泛型容器vector(动态数组)进行学习。

二、常用接口

1.初始化、赋值
//初始化 QVector<T> vec;
QVector<int> _vec;
//赋值
//1. QVector()
QVector<int> _vec(3,1);//_vec = [1,1,1]
//2.数组方式索引赋值
QVector<QString> _vec;
_vec[0] = "jjjs";
_vec[1] = "ggds";
2.插入元素
//1.append() 在尾部插入 等同于 void push_back()
QVector<int> _vec;
_vec.append(1);//_vec = [1]
//2.insert() 在任意位置插入
_vec.insert(1,1);//_vec = [1,2]
_vec.insert(2,3,3);//_vec = [1,2,3,3,3]
//3.push_front() 在头部插入
_vec.push_front(0);//_vec = [0,1,2,3,3,3]
3.删除元素
//1.pop_back() 在尾部删除 等同于 void removeLast() 、 T takeLast()
QVector<QString> _vec;
_vec[0] = "jjjs";
_vec[1] = "ggds";
_vec[2] = "dskk";//_vec = ["jjjs","ggds","dskk"]
_vec.pop_back();//_vec = ["jjjs","ggds"]
//2.pop_front() 在头部删除 等同于 void removeFirst() 、 T takeFirst()
_vec.pop_front();//_vec = ["ggds"]
//3.remove() 在任意位置删除 等同于 T takeAt(int i)
_vec.remove(0);//_ver = []
4.大小、长度
QVector<int> _vec(9,0);
//1.count()
int _iLen = _vec.count();//_iLen = 9
//2.size()
_iLen = _vec.size();//_iLen = 9
//3.length()
_iLen = _vec.length();//_iLen = 9
5.清空
QVector<int> _vec(9,0);
//1.clear()
_vec.clear();
//2.removeAll()
int _iCount = _vec.removeAll(0);//删除所有0,返回删除元素个数
6.替换元素
//replace
QVector<int> _vec(3,0);//_vec = [0,0,0]
_vec.replace(0,1);//_vec = [1,1,1]
7.定位元素
QVector<int> _vec;
_vec[0] = 8;
_vec[1] = 4;
_vec[2] = 29;
_vec[3] = 4;
//1.indexOf()
int _index = _vec.indexOf(4);//_index = 1
//2.lastIndexOf()
_index = _vec.lastIndexOf(4);//_index = 3

三、类型转换

1.QVector 与 QList 之间的转换
//QVector ---> QList
QVector<int> _vec;
QList<int> _list = _vec.toList();
//QList ---> QVector
QList<int> _list;
QVector<int> _vec = QVector::fromList(_list);
2.QVector 与 Vector 之间的转换
//QVector ---> Vector
QVector<int> _vec;
Vector<int> _std = _vec.toStdVector();
//Vector ---> QVector
Vector<int> _std;
QVector<int> _vec = QVector::fromStdVector(_std);

四、遍历方式

1.for循环遍历
QVector<int > _vec(9,2);
for(int i = 0;i < _vec.size();i ++)
{//1.数组方式int _item1 = _vec[i];
//2.at()int _item2 = _vec.at(i);
}
2.foreach遍历
QVector<int > _vec(9,2);
foreach(int var,_vec)
{int _item = var;
}
3.QVectorIterator迭代遍历
QVector<int> _vec(9,2);
QVectorIterator<int> _itor(_vec);
while(_itor.hasNext())
{qDebug()<<_itor.next()<<endl;
}
4.STL迭代遍历
QVector<int> _vec(9,2);
QVector<int>::iterator _itor;
for(_itor = _vec.begin();_itor != _vec.end();_itor ++)
{int _item = *_itor;
}

结尾:本期对于QVector类的讲解就到这,然后分享一个知识点:Vector(动态数组)的动态申请内存是按照2的指数级来申请的。

【QT 基础教程 九】QVector类详解相关推荐

  1. Python3基础教程:元类详解

    1.引入 Python中一切皆对象,所谓对象就是由类创建出来,那么创建对象的类本身也是一个对象,也就是说创建对象的类本身也由别的什么类创建,这种创建类的类就叫元类. 2.元类是谁? type函数就是元 ...

  2. get方法报空指针_C++基础教程之指针拷贝详解

    C++基础教程之指针拷贝详解 指针是编程人员的梦魇,对C语言的开发者是如此,对C++的开发者也是如此.特别是在C++中,如果不注意处理类中的指针,非常容易出问题.如果朋友们不相信可以看看下面的代码: ...

  3. Python视频剪辑基础教程:MoviePy VideoClip详解

    Python视频剪辑基础教程:MoviePy VideoClip详解 随着数字化媒体的快速发展,视频成为了现代社会最为流行的媒介之一.在如此多样化的数字化媒体中,视频编辑技术被誉为其中最为关键的技能之 ...

  4. Python基础教程:super()方法详解

    一.单独调用父类的方法 需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1. 使用方法1打印: 胖子老板,来包槟榔. 那么先写一个胖子老板的父类,执行一下: class FatFa ...

  5. Python基础教程: with语句详解

    with语句的应用场景 编程中有很多操作都是配套使用的,这种配套的流程可以称为计算过程,Python语言为这种计算过程专门设计了一种结构:with语句.比如文件处理就是这类计算过程的典型代表. 使用w ...

  6. 【JAVA基础篇】String类详解

    昨天参加了一场机试,发现自己居然对String类的api不熟了,所以今天来总结一下(基于JDK1.8). 1.父类和实现的接口 没有父类,或者说父类是Object 接口:Serializable.Co ...

  7. Java基础:方法和类详解

    示例代码: 向方法传递对象: class Block{                            //类Block int a,b,c;                          ...

  8. Python基础教程:Python pass语句详解

    2019独角兽企业重金招聘Python工程师标准>>> Python pass 语句 Python pass是空语句,是为了保持程序结构的完整性. pass 不做任何事情,一般用做占 ...

  9. Python基础教程,流程控制语句详解

    1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 很多人学习python,不知道从何学起. 很多人学习pyt ...

最新文章

  1. 快速通过nginx配置域名访问
  2. 机器人替代研究员,工作007,完成688次实验,登上Nature封面
  3. 页面切换语言包使用session不用cookie
  4. 云计算如何对传统软件交付方式产生影响
  5. 安卓初学者必看实例,(手机GPS简单编程访问)
  6. 三大主流ETL工具选型
  7. CRM产品主数据介绍
  8. JLBH – Java延迟基准线束介绍
  9. [国家集训队]middle
  10. Django框架 之 Ajax
  11. 爬虫-代理的质量控制
  12. Python菜鸟入门:day10模块介绍
  13. 毕业答辩PPT免费下载
  14. 网络攻防技术——缓冲区溢出攻击实验
  15. 比较流行的日志分析软件
  16. 【Linux从青铜到王者】第二十四篇:Linux网络基础第四篇之WebSocket协议
  17. 将RDL报表转换成RDLC报表的函数
  18. oppo计算机锁屏快捷键,电脑如何快速锁屏
  19. 生成Base64编码格式的二维码图片(添加url地址图片logo)
  20. ros入门 工程目录结构、节点通信方式、基本操作命令

热门文章

  1. 所见即所得编辑器_文档标记语言与所见即所得编辑器相比的优势
  2. JanusGraph ,生产环境安装
  3. 2022 年超详细过程步骤讲解 CentOS 7 安装Maven。以及Mavne配置文件的修改
  4. 光猫虚拟服务器无法使用,光猫怎么配置虚拟服务器
  5. C#零基础运动控制教程--运动控制卡低速高速运动实验
  6. 娄底高通量测序实验室设计原则探讨
  7. 94、DehazNeRF: Multiple Image Haze Removal and 3D Shape Reconstruction using Neural Radiance Fields
  8. STM32F1案例 ST7735 TFT液晶显示屏综合库使用
  9. 从事计算机行业考MBA有用吗,什么行业需要考mba
  10. 介孔二氧化硅纳米球 Mesoporous silica nanosphere 的介孔二氧化硅纳米球