QVector 容器
- QVector在相邻的内存中存储给定数据类型T的一组数据。在QVector前部或中间位置插入操作速度都很慢,因会导致内存中大量的数据移动。访问数据可使用下标,也可使用迭代器。继承自QVector类的子类有QPolygon、QPolygonF、QStack。
//定义一个vector容器QVector<QString> vStarts;//添加元素vStarts << "张三";vStarts << "李四";vStarts.append("王五"); //尾部添加元素vStarts.prepend("李一"); //头部插入元素vStarts.insert(2, "周八"); //在位置2插入元素//删除元素vStarts.removeOne("周八");//查找元素qDebug() << "第2个名字: " << vStarts.at(2);qDebug() << "是否有张三: " << vStarts.contains("张三");//java风格只读访问QVectorIterator<QString> it_java(vStarts);for(it_java.toFront(); it_java.hasNext(); ){
qDebug() <<it_java.next();}//修改元素vStarts.replace(1, "法外狂徒张三");
//java风格读写访问QMutableVectorIterator<QString> it_java_const(vStarts);for(it_java_const.toFront(); it_java_const.hasNext(); ){
qDebug() <<it_java_const.next();}//STL风格只读访问QVector<QString>::const_iterator it_const = vStarts.constBegin();for(; it_const != vStarts.constEnd(); it_const++){
qDebug() << *it_const;}//STL风格读写访问QVector<QString>::iterator it_start = vStarts.begin();for(; it_start != vStarts.end(); it_start++){
qDebug() << *it_start;}