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下升级py2.6到2.7

    python2.6版本有很多局限性:最重要的就是,当前最新的pip版本已经不再支持python2.6:这给我们安装很多python库增加了很多不便:所以这里把我升级python2.6--2.7的过程及 ...

  2. VUE3 之 插槽的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 非理性定律告诉我们: 人们总是习惯于以情感去判断眼前的事物,非理性的去做决定. 对于长远的利益,人们更愿意去选择短期的利益. 因此在做决定前要让自己冷静,理性的分析,让自己看的更远. 言归 ...

  3. MapperScan注解 放在启动器上?

    package com.aaa.zxf; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boo ...

  4. 分子动力学模拟之基于自动微分的LINCS约束

    技术背景 在分子动力学模拟的过程中,考虑到运动过程实际上是遵守牛顿第二定律的.而牛顿第二定律告诉我们,粒子的动力学过程仅跟受到的力场有关系,但是在模拟的过程中,有一些参量我们是不希望他们被更新或者改变 ...

  5. JAVA异常与异常处理详解【转】

    感谢!!!原文地址:https://www.cnblogs.com/knightsu/p/7114914.html 一.异常简介 什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错.在ja ...

  6. 入门-k8s集群环境搭建(二)

    对于 Kubernetes 初学者,在搭建K8S集群时,推荐在阿里云或腾讯云采购如下配置:(您也可以使用自己的虚拟机.私有云等您最容易获得的 Linux 环境) 至少2台 2核4G 的服务器 Cent ...

  7. docker简介及安装(1)

    Docker简介 软件开发中最为麻烦的事情可能就是配置环境了.由于用户使用的操作系统具有多样性,即便使用跨平台的开发语言(如Java和Python)都不能保证代码能够在各种平台下都可以正常的运转,而且 ...

  8. Java泛型T与?

    感谢大佬:http://m.mamicode.com/info-detail-2657551.html 一.区别 单独的T 代表一个类型 ,而 Class<T>代表这个类型所对应的类, C ...

  9. ◆JAVA加密解密-DES

    DES算法提供CBC, OFB, CFB, ECB四种模式,MAC是基于ECB实现的. 一.数据补位 DES数据加解密就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后 ...

  10. 还在做廉价的劳动力?部署PXE实现Kickstart无人值守安装

    搭建PXE实现Kickstart无人值守安装 1.搭建PXE远程安装服务器 2.实现kicstart无人值守安装 1.PXE介绍及搭载: PXE是有Intel公司开发的网络引导技术,工作在Client ...