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风格的迭代器
//可读可写迭代器
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
?遍历一个列表时,你可以直接通过迭代器来修改该列表的元素。这对于在遍历列表的同时进行修改操作非常有用。
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<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速度更快及更加便捷?