QVector类是动态数组的模板类,顺序容器,它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们。使用前需要包含头文件 #include <QVector>

下面介绍QVector的基本用法,先看看它的一些方法:

构造函数

QVector()  //无参的构造函数
QVector(int size)  //构造一个大小为size个 值为默认值的一个vector
QVector(int size,const T &value)  //构造一个大小为size个 值为T &value的一个vector
QVector(const QVector<T> &other)   //构造一个值为QVector<T> &other的vector

例如:vector<int> intVec;

从尾部插入数据

void append(const T &value)  
void append(const QVector<T> &value)
void push_back(const T &value)
void push_back(const QVector<T> &value)

头部插入数据

void prepend(const T &value)  
void prepend(const QVector<T> &value)
void push_front(const T &value)
void push_front(const QVector<T> &value)
等同于vector.insert(0, value);

将元素插入到vector的任意位置

void insert(int i, const T &value) //将元素插入到i位置,i从0开始计算
void insert(int i, int count, const T &value) //从i位置开始插入count个T &value类型元素

删除元素

QVector::iterator erase(QVector::iterator pos) 从vector中移除pos对应的元素
void remove(int i, int count)  从vector中移除从 i开始的count个元素  
void pop_back()  删除vector中最后一个元素
void pop_front()  删除vector中第一个元素

注意erase方法和std::vector有区别

移除vector中的所有元素

void clear();

容量大小

int capacity() const    返回vector客观上的容量
void reserve(int size)  扩展至少size大小的内存
int count() const    返回vector中的元素个数
int length() const    等同于count()
int size() const     等同于count()

迭代器

QVector::iterator begin() 返回一个STL类型的迭代器指针指向vector的第一个元素
QVector::iterator end()  返回一个STL类型的迭代器指针指向vector的最后一个元素后面的假想元素

其它

bool empty() const  //判断vector是否为空,如果为空返回true,else返回false
int count(const T &value) const  //返回T &value类型元素在vector中的个数
int indexOf(const T &value, int from=...) const  //返回 value在vector中T &value类型元素的位置
const T &at(int i)const  //返回 i位置元素 在vector的index
等同于 T QVector::value(int i) const
void replace(int i, const T &value)   //改变i位置元素的值
QVector::reference QVector::back() 返回vector中的最后一个元素的引用 等同于T &QVector::last()
T &QVector::front()  返回vector中的第一个元素的引用 等同于T & first()

下面的代码是上述一些函数的使用方法:

#include <QtCore/QCoreApplication>
#include <QVector>
#include <iostream>using namespace std;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QVector<int> vec;vec.push_back(9);vec.append(3);vec.push_back(7);vec.push_front(5);vec.push_front(2);vec.append(6);vec.insert(0, 11);vec.insert(0, 12);vec.insert(4, -1);//12 11 2 5 9 3 7 6for (int elem : vec){cout << elem << " , ";}cout << endl;//删除元素cout << "QVector删除数据操作" << endl;vec.pop_back();vec.pop_front();vec.remove(2, 1);  //删除当前vec的第2个数据for (int elem : vec){cout << elem << " , ";}cout << endl;//当前vec的元素:11 2 -1 9 3 7cout << "迭代器用法" << endl;//QVector<int>::iterator it;//for (it = vec.begin(); it != vec.end(); it++)for(auto it= vec.begin(); it != vec.end(); it++){if (*it == -1){vec.erase(it);  //删除掉-1}cout << *it << " ,";}cout << endl;vec.clear();cout << "清空后vec大小 = " << vec.size() << endl;return a.exec();
}

运行结果:

12 , 11 , 2 , 5 , -1 , 9 , 3 , 7 , 6 ,
          QVector删除数据操作
          11 , 2 , -1 , 9 , 3 , 7 ,
          迭代器用法
          11 ,2 ,9 ,3 ,7 ,
          清空后vec大小 = 0

QVector用法详细介绍相关推荐

  1. 【MADDPG(MPE)——环境配置与用法详细介绍(多智能体强化学习))】

    MADDPG(MPE)--环境配置与用法详细介绍(多智能体强化学习) MADDPG(MPE) 介绍 MPE环境安装教程 前期准备 MPE 安装包介绍 MPE 安装环境要求 开始安装 环境测试 MPE环 ...

  2. php中sisson用法,详细介绍php中session的用法

    PHP中的session默认情况下是使用客户端的Cookie.当客户端的Cookie被禁用时,会自动通过Query_String来传递. Php处理会话的函数一共有11个,我们详细介绍一下将要用到几个 ...

  3. 数据库having的用法详细介绍

    转自:微点阅读  https://www.weidianyuedu.com 数据库having的用法的用法你知道吗?下面微点阅读小编就跟你们详细介绍下数据库having的用法的用法,希望对你们有用. ...

  4. Nacos注册中心的部署与用法详细介绍

    一.什么是注册中心: 我们知道微服务彼此间独立部署.具有清晰的边界,服务间通过远程调用来构建复杂的业务功能.而服务册中心在微服务项目中扮演着非常重要的角色,那么注册中心又是什么,使用服务注册中心可以解 ...

  5. mysql 中show 命令用法详细介绍 mysql过程(procedure)的使用

    a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称 b. show databases; -- 显示mysql 中所有数据 ...

  6. js中typeof用法详细介绍

    本文章来介绍在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型. typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可 ...

  7. Thinkphp中import的几个用法详细介绍

    下面附上import的几个用法介绍 1.用法一 import('@.Test.Translate'); @,表示项目根目录.假定根目录是:App/ 导入类库的路径是:App/Lib/Test/Tran ...

  8. Nacos配置中心用法详细介绍

    上篇文章介绍了 Nacos 作为注册中心的用法,除此之外,Nacos 还能作为配置中心使用,那这篇文章就介绍下 Nacos 作为配置中心的基本用法,首先我们先了解下为什么需要使用配置中心. 一.为什么 ...

  9. while read line 用法详细介绍

    循环中的重定向 或许你应该在其他脚本中见过下面的这种写法: while read line do - done < file 刚开始看到这种结构时,很难理解< file是如何与循环配合在一 ...

最新文章

  1. c语言卡尔曼函数库,kalman之c语言实现
  2. python opencv 视频剪辑
  3. Qt 程序打包发布总结
  4. leetcode1476. 子矩形查询
  5. python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...
  6. Python 中文文本分词(包含标点的移除)
  7. MindManager思维导图中文版免费下载使用教程
  8. 【NOIP2017Day1T3】【洛谷P3953】逛公园
  9. XILINX FPGA数字信号处理——3、数字的表示和运算的实现
  10. 饥荒指令代码大全一览
  11. xp访问计算机组提示没有权限,WindowsXP系统提示没有权限使用网络怎么办
  12. Pollard’s rho 算法解大数质因子问题
  13. IDEA创建项目时弹出链接超时的提示,亲测好用的解决办法
  14. ssm+jsp计算机毕业设计车辆违章查询系统2hie7(程序+LW+源码+远程部署)
  15. ArcGIS Pro试用许可申请
  16. antd Mobile Tabs 垂直布局 后台传入数据
  17. 微信搜一搜将开放搜索入口给搜狗搜索
  18. 《士兵突击》能让你学到什么
  19. lazada发货_LAZADA怎么发货?lazada发货流程详解
  20. C# treeview用法 加根节点与子节点

热门文章

  1. 我打不了字计算机应用怎么办,电脑软件双击打不开,无法输入文字
  2. 可以放烟花的c语言程序,C语言实现放烟花的程序
  3. 如何用c语言做高精度计算原理,C语言羁绊之高精度乘法计算
  4. swiper 点击切换轮播图实现
  5. 发生在50年前的一局魔兽录像
  6. Opencv 图像处理-Contours函数提取轮廓及感兴趣区域ROI的必用且实用操作技巧-(涵盖Contours的一切使用基础,附代码段)
  7. 安装Mysql服务教程
  8. nsq命令行参数解析
  9. Java_Day8 Arrays、Math,继承、抽象
  10. 牛牛的装球游戏 (计算几何