【QT 基础教程 九】QVector类详解

这篇具有很好参考价值的文章主要介绍了【QT 基础教程 九】QVector类详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概要:本期主要讲解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,0,0]
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的指数级来申请的。

文章来源地址https://www.toymoban.com/news/detail-631648.html

到了这里,关于【QT 基础教程 九】QVector类详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [QT编程系列-22]:基本框架 - QT常见数据结构:QString、QList、QVector、QMap、QHash、QSet、QPair快览

    目录 1. QT常见数据结构概述 2. QList与QVector比较 3. QPair和QMap比较 4. QT数据结构与STL库数据结构比较 5. QT数据结构与STL库数据结构性能比较 在Qt中,有几个主要的数据结构常用于处理和组织数据,包括: QString: 用于存储和操作字符串的类。QString是Qt中常用的字符串类型,提供

    2024年02月16日
    浏览(41)
  • QVector 和 QMap

    QVector_QMap 头文件 : #includeQVector 模块: QT += core 功能: QVector 类是动态数组的模板类,顺序容器,它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们 bool QVector:: isEmpty () const :如果容器为空返回true QVectorint v;         qDebug() v.isEmpty(); count () 、

    2024年02月09日
    浏览(39)
  • 【QT 基础教程 七】QStringList类详解

    概要:本期主要讲解Qt中的QStringList类的常用接口。 头文件:#includeQStringList 模块: QT += core 父类 : QListQString 功能:根据字面理解的话,QStringList是存储QString的QList.所以你可以认为QStringList是存储类型为QString的列表。学过QStringList,那么QList的使用你也学会了。 1.数组方式访

    2024年02月16日
    浏览(37)
  • 【VisualStudio】使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月10日
    浏览(77)
  • 【VisualStudio】基于 Visual Studio 使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月15日
    浏览(70)
  • QT基础教程(QT中的文件操作)

    本篇文章我们来讲解QT中的文件操作,文件操作对于QT来说是非常重要的一个点,那么下面的话将给大家详细的讲解QT中的文件操作。 在QT中,文件操作是通过Qt的文件和目录处理类来完成的。以下是一些常用的文件操作功能: 1.打开和关闭文件: 使用QFile类可以在QT中打开和关

    2024年02月05日
    浏览(47)
  • QT基础教程之九Qt文件系统

    文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O 设备的类图(Qt5): QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接

    2024年02月10日
    浏览(37)
  • 【Qt】边学边写之Qt教程(零基础)

    打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项 弹出New Project对话框,选择Qt Widgets Application, 选择【Choose】按钮,弹出如下对话框 设置项目名称和路径,按照向导进行下一步, 选择编译套件 向导会默认添加一个继承自QMainWindow的类,可

    2024年01月23日
    浏览(42)
  • QT基础篇(15)QT5多国语言国际化

    1.基本概念 1.1国际化支持的实现 语言国际化(Localization)是指将软件、网站或应用程序适应不同语言、地区和文化的过程。实现语言国际化支持可以通过以下几个步骤: 提取可本地化的文本:将软件或应用程序中需要翻译的文本内容提取出来,例如界面文本、按钮标签、错

    2024年01月24日
    浏览(43)
  • 【Qt】Qt5.12.12安装教程详解

    Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要,对于不了解 C++ 的读者,我建议先阅读《

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包