
#include <QCoreApplication>
#include<QDebug>
#include<QLinkedList>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//QList类
//对于不同的数据类型 ,QList<T>采取不同的存储策略:
//如果T是一个指针类型,或则指针大小的基本类型(该基本类型占有的字节数与指针类型占有的字节数相同),则
//QList<T>直接春初数值在他的数组中; 如果QList<T>存储对象的指针,则该指针指向实际存储的对象。
QList<int> qlist;
for(int i =0 ; i < 10; i++)
qlist.insert(qlist.end(), i+10);
qDebug()<<qlist;
qDebug()<<"---------------通过QList<T>::iterator读写迭代器 --------------";
QList<int>::iterator itera;
qDebug()<<"Result1: ";
for(itera = qlist.begin(); itera != qlist.end(); itera++)
{
qDebug()<< *itera;
*itera = (*itera) * 10 +6;
}
qDebug()<<"---------------通过QList<T>::const_iterator只读迭代器 --------------";
QList<int>::const_iterator con_itera;
for(con_itera = qlist.constBegin(); con_itera != qlist.constEnd(); con_itera++)
{
qDebug()<< *con_itera;
//*con_itera = (*con_itera) * 10 +6; 只读迭代器下 改值操作是不允许的 会报错
}
qDebug()<<"---------------QList中添加元素 在尾部中追加元素 --------------";
//QList中添加元素 在尾部中追加元素
qlist.append(666);
qDebug()<<qlist;
qDebug()<<"---------------查询QList中的元素 --------------";
//查询QList中的元素
qDebug()<< qlist.at(1); //通过index访问
qDebug()<< qlist.contains(666) ;//true 是否包含元素
qDebug()<<"---------------修改QList中的元素 --------------";
//修改Qlist列表中的元素值
qlist.replace(3,88);
qDebug()<<qlist;
qDebug()<<"---------------删除QList中的元素 --------------";
//删除QList中的元素
qlist.removeAt(0); //删除index为0的元素
qlist.removeFirst(); //删除第一个元素
qDebug()<<qlist;
//QLinkedList类
//QLinked<T>是一个链式列表,它以非连续的内存块保存数据;Qlinklist
//不能使用下标,只能使用迭代器访问它的数据项; 与QList对比,在对很大的
//列表进行插入操作时,QLinkedlist具有更高的效率
//容器类 STL风格迭代器遍历 只读迭代器 读写迭代器
// QList<T> QList<T>::const_iterator Qlist<T>::iterator
// QQueue<T> QQueue<T>::const_iterator QQueue<T>::iterator
// QLinkedlist<T> QLinkedlist<T>:const_iterator QLinkedlist<T>:iterator
QLinkedList<QString> qAllmonth;
qDebug()<<"---------------QLinkedlist插入(创建)元素-------------";
for(int i =0; i < 12; ++i)
qAllmonth<<QString("%1%2").arg("Month:").arg(i+1);
qDebug()<<"---------只读迭代器遍历---------------";
QLinkedList<QString>::const_iterator con_qllist = qAllmonth.constBegin();
while (con_qllist != qAllmonth.constEnd()) {
qDebug()<<*con_qllist;
con_qllist++;
}
//QLinkedList是一个链表,不能通过索引访问元素;插入和删除速度快,效率高
return a.exec();
}
所有示例运行结果:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。