0、说明

template <typename T> class QVector

QVector是存储同一个类型T数据的模板类,其功能是动态数组,数据在其中的存储是一系列连续的存储空间。

QList<T>, QLinkedList<T>, QVector<T>, and QVarLengthArray<T>提供了相似的接口和函数,它们通常可以交叉使用。

QVector和QVarLengthArray都可以接受C类型数组,而QList则不行,当我们用到C API时这点要特别注意。

1、模块和加载项

Header: #include <QVector>
qmake: QT += core
Inherited By:

QPolygonQPolygonFQStackQVulkanInfoVector, and QXmlStreamAttributes

2、构造

QVector(InputIterator first, InputIterator last) 用迭代器[first,last)的内容构造QVector
QVector(std::initializer_list<T> args) 用另一个std::initializer_list<T>中的元素构造QVector
QVector(QVector<T> other) 另一个QVector的副本
QVector(int size, T value) 构造大小为size,元素都是value的QVector
QVector(int size) 构造大小为size的QVector,值都是default-constructed value
QVector()  

5、静态方法

QVector<T> fromList(QList<T> list) 从QList构造QVector
QVector<T> fromStdVector(std::vector<T> vector) 从std::vector<T>构造QVector

6、实例方法

返回值类型

方法

说明

QVector<T> &

bool

QVector<T>

QVector<T> &

QVector<T> &

QVector<T> &

QVector<T> &

QVector<T> &

bool

T

operator=(QVector<T> other)

operator!=(QVector<T> other)

operator+(QVector<T> other)

operator+=(QVector<T> other)

operator+=(T value)

operator<<(T value)

operator<<(QVector<T> other)

operator=(std::initializer_list<T> args)

operator==(QVector<T> other)

operator[](int i)

赋值

两个QVector是否相等

在QVector后加另一个QVector构成新的

在QVector后加另一个QVector构成新的

在QVector后加单个Value构成新的

在QVector后加单个Value构成新的

在QVector后加另一个QVector构成新的

用std::initializer_list<T>中的元素构造

可以用v[i]访问索引i的元素

void

append(T value)

append(QVector<T> value)

在QVector后加另一个QVector构成新的

在QVector后加单个Value构成新的

T at(int i) 访问索引i的元素
QVector::const_iterator

begin()

end()

erase(QVector::iterator pos)

erase(QVector::iterator begin, QVector::iterator end)

insert(QVector::iterator before, int count, T value)

insert(QVector::iterator before, T value)

cbegin()

cend()

constBegin()

constEnd()

迭代器
QVector::const_reverse_iterator

crbegin()

crend()

rbegin()

rend()

逆向迭代器
 int capacity() 该capacity的最大容量(并非实际)
void  clear() 移除所有元素并释放所有容量

const T *

T *

constData()

data()

把QVector转化为const T * 和 T *,即数组
 T

constFirst()

constLast()

第一个元素和最后一个元素
 bool contains(T value) 是否包含元素value
 int

count(T value)

count()

统计元素value的个数

统计元素数

bool

empty()

是否为空
 bool endsWith(T value 是否以value结尾
 QVector<T> &  fill(T value, int size = -1) 用value填充剩余空间

first()

front()

第一个元素
 int

indexOf(T value, int from = 0)

lastIndexOf(T value, int from = -1)

第一次出现元素value的位置,顺序和倒序
void

insert(int i, T value)

insert(int i, int count, T value)

往指定位置插入元素

往指定位置插入多个元素

 bool isEmpty()  是否为空
 T last()  最后一个元素
 int length()  元素个数,等同于size()和count()
 QVector<T>  mid(int pos, int length = -1) 中间若干个元素构成的QVector
void   move(int from, int to) 把from处的元素移动到to处
void 

pop_back()

pop_front()

push_back(T value)

push_front(T value)

移除最后一个元素

移除第一个元素

在末尾插入元素

在开头插入元素

 void  prepend(T value) 在开头插入元素
 void

remove(int i)

remove(int i, int count)

移除指定位置的元素

移除指定位置指定数量的元素

 int  removeAll(T t) 移除所有元素t
void   removeAt(int i) 等同于remove(int i)
void   removeFirst() 移除第一个元素
 void  removeLast() 移除最后一个元素
 bool removeOne(T t 移除第一个元素t
void   replace(int i, T value) 替换索引i处的元素为value
void   reserve(int size) 预留size容量
void   resize(int size) 重设QVector的大小
 void  size() 元素数
 void

shrink_to_fit()

squeeze()

释放所有多余的控件
bool   startsWith(T value) 是否以指定元素开始
 void  swap(QVector<T> &other) 互换两个QVector的元素
 void  swapItemsAt(int i, int j) 交换QVector位置i和j处的元素
 T

takeAt(int i)

takeFirst()

takeLast()

提取并移除指定位置的元素
QList<T>  toList()  将QVector转换为List
std::vector<T>  toStdVector()  将QVector转换为StdVector
 T

value(int i)

value(int i, T defaultValue)

返回位置i处的元素

如果不存在,可以指定默认返回值

和at()、operator[]功能类似

Qt:QVector的更多相关文章

  1. Qt中QVector与QList的应用

    首先來看看QVector 的基本使用方式,建立一個可容納兩個元素的QVector ,並使用索引方式存取元素值:QVector<double> vect(2); vect[0] = 1.0; ...

  2. Qt:QCustomPlot使用教程(二)——基本绘图

    0.说明 本节翻译总结自:Qt Plotting Widget QCustomPlot - Basic Plotting 本节内容是使用QCustomPlot进行基本绘图. 本节教程都使用custom ...

  3. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  4. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  5. Qt:QJsonObject

    0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...

  6. Qt:QJsonValue

    0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...

  7. Qt:QJsonArray

    0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...

  8. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  9. Qt:QList、QStringList

    QList 0.说明 QList<T> 一个QList是存储相同类型一组数据的列表. QStringList是从QList<String>继承而来,并添加了一些好用的方法,如j ...

随机推荐

  1. Error:(3, 21) java: 程序包javax.servlet不存在的解决方法

    采用 https://blog.csdn.net/GK666_/article/details/106442929得到解决

  2. 《Spring Boot 实战纪实》之过滤器

    导航 什么是过滤器 Spring的过滤器 Filter定义 过滤的对象 典型应用 过滤器的使用 Filter生命周期 过滤器链 自定义敏感词过滤器 新增自定义过滤器 添加 @WebFilter注解 添 ...

  3. 天翼网关免密改桥接&恢复出厂(含修改超密工具)

    路由/桥接模式切换 说明:默认天翼网关用的局域网ip是192.168.1.1,如果不是,则修改为局域网ip. 本机已经是桥接模式,在这里可以输入宽带账号密码转换成路由模式,两个模式之间可以互转. 恢复 ...

  4. uni微信小程序优化,打包后的import vue路径是可删除的

    这次的优化我公司项目主包只减小了32kb,但是减小的不仅仅是主包,所有分包均在没有改动任何业务代码的情况下完成了压缩空间的优化. 主包分包压缩空间的优化都要视项目而定,32kb只是我公司的小程序项目. ...

  5. 数论同余学习笔记 Part 2

    逆元 准确地说,这里讲的是模意义下的乘法逆元. 定义:如果有同余方程 \(ax\equiv 1\pmod p\),则 \(x\) 称为 \(a\bmod p\) 的逆元,记作 \(a^{-1}\). ...

  6. Unsupported major.minor version 52.0报错问题解决方案

    感谢原文:https://blog.csdn.net/wangmaohong0717/article/details/82869359 1.问题描述 工程启动的时候,报错如下: nested exce ...

  7. urlencode编码与urldecode解码

    转载请注明来源:https://www.cnblogs.com/hookjc/ <script type="text/javascript"><!--functi ...

  8. 自定义带图片和文字的Button的排版--陈棚

    自定义button,动态加载图片与文字 [footView addSubview:btnAllChoose]; [btnAllChoose setTitle:str forState:UIContro ...

  9. 列出ubuntu软件管理工具apt的一些用法(自由总结)

    安装软件包 [root@CentOS7 ~]#apt install tree 删除软件包 [root@CentOS7 ~]# apt remove tree 列出仓库软件包 [root@CentOS ...

  10. 联邦学习:按Dirichlet分布划分Non-IID样本

    我们在<Python中的随机采样和概率分布(二)>介绍了如何用Python现有的库对一个概率分布进行采样,其中的dirichlet分布大家一定不会感到陌生.该分布的概率密度函数为 \[P( ...