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. windows系统配置Nginx使用SSL证书实现Https反向代理

    Nginx反向代理服务,可以代理接收请求,并把请求转发到设置好的其他服务器上. 例如,Nginx服务器为 100.101.102.103,A服务为 100.101.102.104 ,通过Nginx配置 ...

  2. python字符串系列--2

    #!/usr/bin/python #coding=utf-8 first_name='tiger' last_name='gao' full_name= f"{first_name} {l ...

  3. SIFT,SuperPoint在图像特征提取上的对比实验

    SIFT,SuperPoint都具有提取图片特征点,并且输出特征描述子的特性,本篇文章从特征点的提取数量,特征点的正确匹配数量来探索一下二者的优劣. 视角变化较大的情况下 原图1 原图2 SuperP ...

  4. python项目中 ,open() 方法, 如何读取json文件的位置。

    一 copy 目标文件绝对路径的URL. 固定在你电脑上的路径.简单好用.

  5. Vue之JavaScript基础(闭包与原型链)

    闭包 定义:能够访问另一个函数作用域的变量的函数. 作用:可以通过闭包,设计私有变量及方法 实例: function outer() { var a = '变量1' var inner = funct ...

  6. c++17 新特性

    编译环境说明:gcc 8.1 + eclipse +windows 10 eclipse cpp默认支持c++14,做c++17开发时,需要手动进行配置. 1.关键字 1)constexpr c++1 ...

  7. Node.js下载安装与配置(windows)

    一.Node.js下载 官网下载地址:下载 | Node.js 中文网 (nodejs.cn) 以Windows64位安装版为例,点击"Windows 安装包(.msi)"右侧的& ...

  8. 【linux命令】wget

    感谢作者:八雲苗 链接:https://www.jianshu.com/p/1c3847fa7e45 wget官方文档:wget wget是一个使用HTTP,HTTPS,FTP和FTPS协议来下载文件 ...

  9. JAVA! static的作用

    是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只 ...

  10. Centos 系统目录概述

    Linux目录一切从根目录开始,即"/",根下面的目录是一个有层次的树状结构.并且分区或磁盘是必须挂载在根目录才可以正常访问.做一个形象的比喻:目录类似一个一个的入口,而根目录则是 ...