概要:本期主要讲解Qt中QVector容器类的常用接口。
一、简介:
头文件:#include
模块: QT += core
功能:主要用于数据存储,可以类比C++中的泛型容器vector(动态数组)进行学习。
二、常用接口
1.初始化、赋值
QVector<int> _vec;
QVector<int> _vec(3,1);
QVector<QString> _vec;
_vec[0] = "jjjs";
_vec[1] = "ggds";
2.插入元素
QVector<int> _vec;
_vec.append(1);
_vec.insert(1,1);
_vec.insert(2,3,3);
_vec.push_front(0);
3.删除元素
QVector<QString> _vec;
_vec[0] = "jjjs";
_vec[1] = "ggds";
_vec[2] = "dskk";
_vec.pop_back();
_vec.pop_front();
_vec.remove(0);
4.大小、长度
QVector<int> _vec(9,0);
int _iLen = _vec.count();
_iLen = _vec.size();
_iLen = _vec.length();
5.清空
QVector<int> _vec(9,0);
_vec.clear();
int _iCount = _vec.removeAll(0);
6.替换元素
QVector<int> _vec(3,0);
_vec.replace(0,1);
7.定位元素
QVector<int> _vec;
_vec[0] = 8;
_vec[1] = 4;
_vec[2] = 29;
_vec[3] = 4;
int _index = _vec.indexOf(4);
_index = _vec.lastIndexOf(4);
三、类型转换
1.QVector 与 QList 之间的转换
QVector<int> _vec;
QList<int> _list = _vec.toList();
QList<int> _list;
QVector<int> _vec = QVector::fromList(_list);
2.QVector 与 Vector 之间的转换
QVector<int> _vec;
Vector<int> _std = _vec.toStdVector();
Vector<int> _std;
QVector<int> _vec = QVector::fromStdVector(_std);
四、遍历方式
1.for循环遍历
QVector<int > _vec(9,2);
for(int i = 0;i < _vec.size();i ++)
{
int _item1 = _vec[i];
int _item2 = _vec.at(i);
}
2.foreach遍历
QVector<int > _vec(9,2);
foreach(int var,_vec)
{
int _item = var;
}
3.QVectorIterator迭代遍历
QVector<int> _vec(9,2);
QVectorIterator<int> _itor(_vec);
while(_itor.hasNext())
{
qDebug()<<_itor.next()<<endl;
}
4.STL迭代遍历
QVector<int> _vec(9,2);
QVector<int>::iterator _itor;
for(_itor = _vec.begin();_itor != _vec.end();_itor ++)
{
int _item = *_itor;
}
结尾:本期对于QVector类的讲解就到这,然后分享一个知识点:Vector(动态数组)的动态申请内存是按照2的指数级来申请的。