修改元素
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,最后一个元素改为12for(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速度更快及更加便捷