linux IntelliJ IDEA教程 java开发环境变量 Logstash 全局重载运算符 nginx反向代理 Spring Cloud css algorithm api csv gdb chartjs usb handlebarsjs LimeJS Draggabilly vue过滤器 vue中文网 vue手册 jquery触发change事件 mysql新增用户和权限 maven插件 java解析pdf java微服务架构 mysql 选择数据库 python自学教材 python如何定义变量 python调用命令行 java方法 java基础课程 java中long linux系统安装 离散数学及其应用 win7loader 路由器有辐射吗 tftpd64 电视免费软件 c语言程序100例 美国地址生成器
当前位置: 首页 > 学习教程  > 编程语言

Qt中Qlist,QLinkedList,QVector

2021/1/28 23:24:38 文章标签:

QList类 QLinkedList类 QVector类 QList是最常用的容器类。QList 以列表形态存储并管理数据,并能进行基于快速索 引的访问,也可以进行快速的数据删除操作。 QLinkedList是一个链式列表,不能使用下标访问,与 QList 相比&#xff…

QList类 QLinkedList类 QVector类

QList是最常用的容器类。QList 以列表形态存储并管理数据,并能进行基于快速索
引的访问,也可以进行快速的数据删除操作。

QLinkedList是一个链式列表,不能使用下标访问,与 QList 相比,当对一个很大的
列表进行插入操作时,QLinkedList 更高效。

QVector 在相邻的内存中存储给定数据类型 T 的一组数据。

QList的具体用法:

添加元素:

	QList<int> list;

    //添加元素
    list << 1 << 2 << 3 << 4
         << 5 << 6 << 7 << 8;
    list << 9;
    list.append(10);	//在尾部添加元素
    list.prepend(0);	//在头添加元素
    list.insert(1,11);	//在指定位置添加元素
    qDebug() << list;

找查元素:

  	qDebug() << "list第3个元素:" << list.at(2);
    qDebug() << "list第3个元素:" << list[2];
    qDebug() << "list有0:" << list.contains(0);
    qDebug() << "list的大小:" << list.size();

修改元素

	list.replace(5,12);
    list[0] = 100;
    qDebug() <<"修改元素后:" << list;

删除第一个元素:

	list.removeFirst();

删除最后一个元素:

	list.removeLast();

删除指定位置的元素:

	list.removeAt(2);

删除指定的元素:

	list.removeOne(99);

清空列表:

  	list.clear();

遍历:

	QList<int> numList;
    numList << 1 << 2 << 3 << 4 << 5;

    //读写迭代器
    QList<int>::iterator it_numRW;
    it_numRW = numList.begin();
    for(;it_numRW != numList.end();++it_numRW)
    {
      *it_numRW = *it_numRW * 10;
      qDebug() << *it_numRW;
    }

    //只读迭代器
    QList<int>::const_iterator it_numR;
    it_numR = numList.constBegin();
    qDebug() << "STL风格只读正遍历:";
    for(; it_numR != numList.constEnd();++it_numR)
        qDebug() << *it_numR;

QLinkedList的具体用法:

添加元素:

   	 QLinkedList<QString> weekList;
   	 for(int j = 1; j < 8; j++)
        weekList << QString("%1%2").arg("星期").arg(j);
	

遍历:

    //只读迭代器
	QLinkedListIterator<QString> it_wr(weekList);
    for(it_wr.toFront();it_wr.hasNext();)
        qDebug() << it_wr.next();
	//读写迭代器
    QMutableLinkedListIterator<QString> it_wrw(weekList);
    for(it_wrw.toFront();it_wrw.hasNext();)
    {
        QString day = it_wrw.next();
        if(day == "星期3")
            it_wrw.setValue("星期三");
        if(day == "星期5")
            it_wrw.remove();
    }

    qDebug() << "weekList修改数据后:";
    for(it_wrw.toFront();it_wrw.hasNext();)
        qDebug() << it_wrw.next();

    for(it_wrw.toFront();it_wrw.hasNext();)
    {
        QString day = it_wrw.next();
        if(day == "星期4")
            it_wrw.insert("星期五");
    }
    qDebug() << "添加星期五后遍历:";
    for(it_wrw.toFront();it_wrw.hasNext();)
        qDebug() << it_wrw.next();

QVector的具体用法:

添加元素:

	QVector<QString> weekVector;
	weekVector << "星期一";
	weekVector << "星期二" <<"星期三";
	weekVector.append("星期四");
	weekVector.prepend("星期五");
	weekVector.insert(0,"星期天");
	qDebug() << weekVector;

修改元素:

	weekVector.replace(0,"星期日");

删除元素:

	weekVector.remove(0);
	
	weekVector.removeAll();

访问,查询:

	qDebug() << weekVector[0] << weekVector[1];
	qDebug() << "星期六是否在其中:" << weekVector.contains("星期六");

遍历:

	//只读迭代器
	QVectorIterator<QString> it_sr(weekVector);
	for(it_sr.tofont();it_sr.hasNext();)
        qDebug() << it_sr.next();
	//读写迭代
	QMutableVectorIterator<QString> it_wrw(weekVector);
    for(it_wrw.toFront();it_wrw.hasNext();)
    {
        QString day = it_wrw.next();
        if(!QString::compare(s,"星期三"))
            it_wrw.setValue("星期六");
    }

    qDebug() << "weeVector修改数据后:";
    for(it_wrw.toFront();it_wrw.hasNext();)
        qDebug() << it_wrw.next();


本文链接: http://www.dtmao.cc/news_show_650210.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?