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();
}

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值