QList类
对于不同数据类型,QList<T>采取不同的存储策略
- 如果T是一个指针类型或者指针大小的基本类型(该基本类型占有的字节数和指针类型占有的字节数相同),QList<T>将数值直接存储在它的数组中。
- 如果QList<T>存储对象的指针,则该指针只想实际存储的对象。
//QList类 QList<int> qlist;//初始化一个空的QList<int>列表 for (int i = 0; i < 10; ++i) { qlist.insert(qlist.end(),i+10); } qDebug() << qlist; //通过QList<int>::iterator读写迭代器 QList<int>::iterator x; for (x = qlist.begin(); x !=qlist.end(); x++) { qDebug() << (*x); *x =(*x)*10+6; qDebug() << (*x); } QList<int>::const_iterator qciter; for (qciter = qlist.begin(); qciter !=qlist.constEnd();qciter++) { qDebug() << *qciter; } qDebug() << endl; //想qlist添加元素 qlist.append(666); QList<int>::iterator itr1; for (itr1 = qlist.begin(); itr1 !=qlist.constEnd();itr1++) { qDebug() << *itr1; } qDebug() << endl; //查询qlist当中的元素 qDebug() << qlist.at(3); qDebug() << qlist.contains(666); //修改qlist里的值 qlist.replace(3,888); qDebug() << qlist; //删除qlist里的元素 qlist.removeAt(0); qlist.removeAt(2); qlist.removeFirst(); qlist.removeLast(); qDebug() << qlist;
QLinkedList类
QLinkedList<T>是一个链式列表,它是以非连续的内存块保存数据。所以不能是用下标,只能用迭代器访问数据项,与QList相比,当对一个很大的列表插入数据时,QLinkedList效率更高。
//QLinkedList QLinkedList<QString> qAllMonth; for (int i = 0; i < 12; i++) { qAllMonth << QString("%1%2").arg("Month:").arg(i); } //读写迭代器 QLinkedList<QString>::iterator itow=qAllMonth.begin(); for(;itow !=qAllMonth.end();itow++){ qDebug() << *itow; } //只读迭代器 QLinkedList<QString>::const_iterator itr=qAllMonth.begin(); for(;itr !=qAllMonth.end();itr++){ qDebug() << *itr; }
标签:iterator,++,QList,QLinkedList,qAllMonth,qlist From: https://www.cnblogs.com/baisedeyu/p/17849620.html