QVector
Vector 在相邻的内存中存储给定数据类型 T 的一组数据。在 QVector 前部或中间位置插入操作速度都很慢,因会导致内存中大量的数据移动。访问数据可使用下标,也可使用迭代器。继承自 QVector 类的子类有 QPolygon、QPolygonF、QStack。
QVector增删改查
//新增
QVector<QString> vStarts;
vStarts << "小黑" << "小蓝" << "小黄";
vStarts.append("小红");
vStarts.prepend("小白");
vStarts.insert(0,"小绿");
qDebug() << vStarts;
//修改元素
vStarts.replace(1,"大小白白");
qDebug() << vStarts;
//删除元素
vStarts.removeAll("小绿");
qDebug() << vStarts;
//查询元素
qDebug() << vStarts[0];
qDebug() << vStarts.contains("小蓝");
遍历
QVectorIterator<QString> v_read(vStarts);
for(v_read.toFront();v_read.hasNext();){
qDebug() << v_read.next();
}
QMutableVectorIterator<QString> v_rw(vStarts);
for(v_rw.toFront();v_rw.hasNext();){
QString ha = v_rw.next();
if(!QString::compare(ha,"小蓝")){
v_rw.setValue("小蓝色");
}
}
for(v_rw.toFront();v_rw.hasNext();){
qDebug() << v_rw.next();
}
qDebug() << "用STL形式";
// QVectorIterator<QString>::const_iterator it_read;
QVector<QString>::const_iterator it_read;
it_read = vStarts.constBegin();
for(;it_read != vStarts.constEnd();++it_read){
qDebug() << *it_read;
}