QVector类是动态数组的模板类,顺序容器,它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们。使用前需要包含头文件 #include
下面介绍QVector的基本用法,先看看它的一些方法:
构造函数
QVector() //无参的构造函数
QVector(int size) //构造一个大小为size个 值为默认值的一个vector
QVector(int size,const T &value) //构造一个大小为size个 值为T &value的一个vector
QVector(const QVector &other) //构造一个值为QVector &other的vector
例如:vector intVec;
从尾部插入数据
void append(const T &value)
void append(const QVector &value)
void push_back(const T &value)
void push_back(const QVector &value)
头部插入数据
void prepend(const T &value)
void prepend(const QVector &value)
void push_front(const T &value)
void push_front(const QVector &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
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVector 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 6
for (int elem : vec)
{
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?