QT简单入门实例5【QVector与QList容器类】

概述

仅在此简单介绍QVector与QList的一些常见函数,有兴趣的可以查下QT帮助文档(F1)。
两者都是Qt提供的的泛型容器类,分别对std::vector和std::list进行了改进,以提高运行效率,简化使用。
QVector类是一个提供动态数组的模板类,QList类类是一个提供链表的模板类。
有兴趣的可以研究一下Qt库中的具体实现,对提高代码水平会有很大提升。

使用:

QList可以解决绝大多数问题,效率也更高。

源码

建立一个qt控制台程序,代码如下:
main.cp

#include <QCoreApplication>
#include <QVector>
#include <QList>
#include <QDebug>

//QT简单入门实例5【QVector与QList容器类】
//QVector<T>,QList<T> 可容纳 QT 和 c++11 的内置类型,也可容纳用户自定义类型,如结构体和类
//本次程序以 QVector<int>, QList<int> 为例
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QVector<int> vector;
    qDebug()<<"QVector<int>:";
    //在末尾增加元素
    vector.push_back(3);
    vector<<4;
    vector.append(5);
    //在开头增加元素
    vector.prepend(2);
    vector.push_front(1);
    qDebug()<<vector;
    //任意位置插入
    vector.insert(1,2,6); //在索引值1的位置插入2个6
    qDebug()<<vector;
    //移除元素
    vector.remove(1,2); //从索引值1开始,移除2个元素
    qDebug()<<vector;
    //查找
    qDebug()<<vector.indexOf(3); //查找值为3的元素,返回找到的 第一个3 的索引值
    //按索引取出元素
    qDebug()<<vector.at(0);
    //更改元素
    vector.replace(0,2); //将索引值为0的元素替换成 2
    qDebug()<<vector;
    //获取长度,以下三种方式等价
    qDebug()<<vector.count();
    qDebug()<<vector.size();
    qDebug()<<vector.length();
    //清除容器
    vector.clear();
    qDebug()<<vector;

    QList<int> list;
    qDebug()<<"\n\nQList<int>:";
    //在末尾增加元素
    list.push_back(3);
    list<<4;
    list.append(5);
    //在开头增加元素
    list.prepend(2);
    list.push_front(1);
    qDebug()<<list;
    //任意位置插入
    list.insert(1,6); //在索引值1的位置插入6
    qDebug()<<list;
    //移除元素
    list.removeAt(1); //移除索引值为1的元素
    qDebug()<<list;
    //查找
    qDebug()<<list.indexOf(3); //查找值为3的元素,返回找到的 第一个3 的索引值
    //按索引取出元素
    qDebug()<<list.at(0);
    //更改元素
    list.replace(0,2); //将索引值为0的元素替换成 2
    qDebug()<<list;
    //获取长度,以下三种方式等价
    qDebug()<<list.count();
    qDebug()<<list.size();
    qDebug()<<list.length();
    //清除容器
    list.clear();
    qDebug()<<list;

    return a.exec();
}

运行结果:
在这里插入图片描述

发布了19 篇原创文章 · 获赞 6 · 访问量 6928

猜你喜欢

转载自blog.csdn.net/Sun_tian/article/details/104356610