栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

QList容器和 QLinkedList容器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

QList容器和 QLinkedList容器

QList容器 和 QlinkedList容器

QList< T>是最常用的容器类。QList以列表形态存储并管理数据,并能进行基于快速索引的访问,也可以进行快速的数据删除操作。继承自QList类的子类有QItemSelection、QQueue、QStringList、QTestEventList.可用运算符<< 、append()、prepend()进行添加元素,insert()进行插入。QList< T>维护了一个指针数组,数组元素指向每一个链表项,因此QList< T> 提供了基于下标的快速访问。Java风格迭代器迭代点位置:第一个列表项前、两个列表项中间、最后一个列表项之后。STL风格迭代器迭代点位置:直接指向列表项。

//定义List链表
    QList list;

//添加元素
    list <<1 <<2 <<3 <<4 <<5 <<6;
    list <<7;
    list.append(8);
    list.prepend(0);  //头部添加元素
    list.insert(1,99);//指定位置插入元素
    qDebug() << list;

//访问元素
    qDebug() << list[2];
    qDebug() << list.at(3);

//查找元素
    qDebug() << "链表中是否有元素8: " < montList;    //月份
    QMutableListIterator it_mrw(montList);

//初始化数据
    for(int i= 1; i<=12; i++){
        it_mrw.insert(i);
    }

//反遍历元素
    for(it_mrw.toBack(); it_mrw.hasPrevious();){
        qDebug() << "第" << it_mrw.previous() << "月";
    }

//正遍历元素
    for(it_mrw.toFront(); it_mrw.hasNext();){
        qDebug() << "第" << it_mrw.next() << "月";
    }

//java只读迭代器
    QListIterator it_mr(montList);
    for(it_mr.toFront(); it_mr.hasNext();){
        qDebug() << "第" << it_mr.next() << "月";
    }

//STL风格迭代器
    QList numList;
    numList <<11 <<22 <<33 <<44 <<55;

//读写方式访问
    QList::iterator it_num = numList.begin();
    for(;it_num != numList.end(); it_num++){
        qDebug() << *it_num;
    }

//只读方式访问
    QList::const_iterator it_num_const = numList.constBegin();
    for(;it_num_const != numList.constEnd(); it_num_const++){
        qDebug() << *it_num_const;
    }

 
 
 

QlinkedList 容器

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

java风格迭代器

	QlinkedList weeklink;
    for(int i= 0;i <7 ;i++){
        weeklink<< QString("%1%2").arg("星期").arg(i+1);
    }

    // qDebug() << weeklink[0];     //不支持下标访问

//java风格只读迭代器
    QlinkedListIterator it_week(weeklink);
    for(it_week.hasPrevious(); it_week.hasNext();){
        qDebug() << it_week.next();
    }

//java风格读写迭代器
    QMutablelinkedListIterator it_wrw(weeklink);
    for(it_wrw.toFront(); it_wrw.hasNext();){
        QString ret = it_wrw.next();
        if(ret == "星期3"){
            it_wrw.setValue("星期三"); //修改为星期三
        }
        if(ret == "星期5"){
            it_wrw.remove();   //删除星期5
        }
        if(ret == "星期7"){
            it_wrw.insert("星期八");	//插入元素
        }
    }

//修改数据后
    for(it_wrw.toFront(); it_wrw.hasNext();){
        qDebug() << it_wrw.next();
    }

 
STL风格迭代器

 	QlinkedList weeklink;
    for(int i= 0;i <7 ;i++){
        weeklink<< QString("%1%2").arg("星期").arg(i+1);
    }

//STL风格只读迭代器
    QlinkedList::const_iterator it_week_const = weeklink.constBegin();
    for(; it_week_const != weeklink.constEnd(); it_week_const++){
        qDebug() << *it_week_const;
    }    
    
//STL风格读写迭代器
    QlinkedList::iterator it_week = weeklink.begin();
    for(;it_week != weeklink.end(); it_week++){
        if(*it_week == "星期1"){
            *it_week = "星期一";   //修改元素
        }
        qDebug() << *it_week;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784130.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号