Qt 容器 Qlist

发布时间:2024年01月22日

修改元素

1.修改链表指定位置元素 replace(5,66)?函数体指的是修改链表第五个元素,改为66

2.采用数组下标修改链表的元素: list[0] = 100 ; 把链表数组下标为0的元素改为100

删除元素

1.list.removeFirst()?删除第一个元素

2.list.removeLast() 删除最后一个元素

3.list.removeAt(2)??删除指定元素,下标元素为2

4.list.removeOne(99)? 删除已知链表里面数据的元素,删除99

5.list.clear()? 清空链表

Java风格迭代器

读写迭代器

//Java风格的迭代器
    //可读可写迭代器
    QList<int> montList; //定义链表 月份
    QMutableListIterator<int> it_mrw(montList); //读写迭代器
    for(int i=0 ; i< 12 ; i++) //初始化元素
        it_mrw.insert(i);      //插入元素

    qDebug()<<"初始化后数据反遍历:";
    for(it_mrw.toBack();it_mrw.hasPrevious();)
        qDebug()<<it_mrw.previous();

    qDebug()<<"初始化后数据正遍历:";
    for(it_mrw.toFront();it_mrw.hasNext();)
        qDebug()<<it_mrw.next();
    //把第一元素改为1,最后一个元素改为12
      for(it_mrw.toFront();it_mrw.hasNext();)
    {
        int month = it_mrw.next();
        if(month == 0)
            it_mrw.remove();
        if(month == 11)
            it_mrw.setValue(12);
    }
    qDebug()<<"修改后数据正遍历:";
    for(it_mrw.toFront();it_mrw.hasNext();)
        qDebug()<<it_mrw.next();

    //只读迭代器
    
    //只读迭代器
    QListIterator<int> it_mr(montList);

    //正遍历
    qDebug()<<"只读迭代器正遍历:";
    for(it_mr.toFront();it_mr.hasNext();)
        qDebug()<<it_mr.next();

    //反遍历
    qDebug()<<"只读迭代器反遍历:";
    for(it_mr.toBack();it_mr.hasPrevious();)
        qDebug()<<it_mr.previous();

QMutableListIterator?是 Qt 框架中提供的一个迭代器,专门用于修改列表(QList)中的元素。与标准的 Qt 迭代器(如?QListIterator)不同,QMutableListIterator?允许你在迭代过程中直接修改列表的内容。

当你使用?QMutableListIterator?遍历一个列表时,你可以直接通过迭代器来修改该列表的元素。这对于在遍历列表的同时进行修改操作非常有用。

STL风格迭代器

 QList<int> numList;
    numList << 11 << 22 << 33 << 44 << 55 ;

    //读写迭代器
    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);

    //Java风格只读迭代器
    QLinkedListIterator<QString> it_wr(weekList);
    for(it_wr.toFront();it_wr.hasNext();)
        qDebug()<<it_wr.next();
    //Java风格读写迭代器
    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();

QList与QLinkedList区别:?

QLinkedList类不能使用.At及数组来访问元素,但当插入数据元素量特别庞大时:QLinkedList比QList速度更快及更加便捷?

文章来源:https://blog.csdn.net/nanshenchao/article/details/135735085
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。