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. Linux无写权限打zip

    opt下tiger.txt没权限得时候可以这样直接用zip打包 zip /tmp/1.zip /opt/tiger.txt

  2. python列表删除和排序

    1.del message[0]---知道位置不知道值 2.message.remove('a')----知道值不知道位置 3.message.sort()--正向永久排序 4.message.sor ...

  3. Webpack之 webpack-dev-server 中的 contentBase配置及作用

    contentBase:主要是指定静态资源的根目录的.  

  4. Serverless Workflow项目

    维基百科对工作流的定义是:对工作流程及其各操作步骤之间业务规则的抽象.概括描述.我们认为工作流的主要职责是: 保证结果一致性,提高容错性要求:对错误重试,捕获,执行回滚或补偿逻辑 为长时间运行的流程维 ...

  5. 「JOI 2014 Final」飞天鼠

    「JOI 2014 Final」飞天鼠 显然向上爬是没有必要的,除非会下降到地面以下,才提高到刚好为0. 到达一个点有两种情况:到达高度为0和不为0. 对于高度不为0的情况,显然花费的时间越少高度越高 ...

  6. JS 高阶函数

    笔记整理自:廖雪峰老师的JS教程 目录 概述 Array中的高阶函数 map(返回新的Array) reduce(返回新的Array) filter(返回新的Array) sort(返回同一Array ...

  7. SpringBoot使用IDEA设置的外部Tomcat启动

    前言 使用springboot内嵌的tomcat启动是没问题,但是工程是要放到服务器上的tomcat的,所以springboot内嵌的能够启动,但不代表服务器的tomcat能启动起来,我就遇到了这个问 ...

  8. Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)

    转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问对于可以静态化的页面,尽可能静态化对一个动态页面中可以静态的局部,采用静态化部分数据可以生成XML,或者文本文件 ...

  9. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project gulimall-common: There are test failures.

    对Maven打包时碰见的问题: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (d ...

  10. day3 -- 集合、文件操作、函数

    1.集合:集合无序,不重复,可以用set(列表) 方法将列表转换为集合,实现去重 对比列表:集合是{}包围,列表是[]包围 对比字典:集合是没有key的,字典是有key的 set_1 = {1, 2, ...