QT QList插入-添加-删除-交换-查找-与统计的操作
QList类是一种表示链表的模板类,一种泛型容器类,以列表形态存储并管理其中的列表元素,并支持基于快速索引的数据存取, 也可以进行快速的数据删除操作。
QList类对象表示为一组指向被存储元素的数组,元素个数小于1000的QList类对象能够实现在链表中间的快速插入和查找操作。
此外,由于QList类在链表两端都预先分配了内存,因此实现链表前后端的添加操作都很快(这两个成员函数为prepend ()和append() )。
qDebug()<<"开始显示:"<<list2.at(i); //对于只读访问问at(i)比list2[i]速度快
#include <QCoreApplication>
#include <QList>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList<QString> list2;
list2<<"aa"<<"bb"<<"cc";//插入项目
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
if(list2[1]=="bb")
{
list2[1]="ab";
}
list2.replace(2,"bc");
qDebug()<<"更换后的操作显示:";
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"更换后的操作显示方法2:";
for(int i=0;i<list2.size();++i)
{
qDebug()<<"开始显示:"<<list2.at(i);
}
qDebug()<<"追加操作:";
list2.append("dd5");//尾部增加
list2.prepend("dda1");//头部增加
qDebug()<<"追加后显示:";
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"删除第1个项:";
list2.takeAt(0);
qDebug()<<"删除后显示:";
for(int i=0;i<list2.size();++i)
{
qDebug()<<"开始显示:"<<list2.at(i); //对于只读访问问at(i)比list2[i]速度快
}
//插入操作
qDebug()<<"开始插入-----------:";
list2.insert(1,"aa2");
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"交换操作--第1项与第2项-------:";
list2.swap(0,1);
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"列表中查找某一字符串是否存在----dd5---:";
qDebug()<<"是否包含dd5,结果"<<list2.contains("dd5");
qDebug()<<"统计dd5的个数,结果"<<list2.count("dd5");
list2.append("dd6");
list2.append("dd5");
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"从索引0开始查找第一个dd5的位置,结果"<<list2.indexOf("dd5",0);
qDebug()<<"从索引5开始查找第二个dd5的位置,结果"<<list2.indexOf("dd5",5);
return a.exec();
}
#include <QCoreApplication>
#include <QList>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList<QString> list2;
list2<<"aa"<<"bb"<<"cc";//插入项目
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
if(list2[1]=="bb")
{
list2[1]="ab";
}
list2.replace(2,"bc");
qDebug()<<"更换后的操作显示:";
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"更换后的操作显示方法2:";
for(int i=0;i<list2.size();++i)
{
qDebug()<<"开始显示:"<<list2.at(i);
}
qDebug()<<"追加操作:";
list2.append("dd5");//尾部增加
list2.prepend("dda1");//头部增加
qDebug()<<"追加后显示:";
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"删除第1个项:";
list2.takeAt(0);
qDebug()<<"删除后显示:";
for(int i=0;i<list2.size();++i)
{
qDebug()<<"开始显示:"<<list2.at(i); //对于只读访问问at(i)比list2[i]速度快
}
//插入操作
qDebug()<<"开始插入-----------:";
list2.insert(1,"aa2");
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"交换操作--第1项与第2项-------:";
list2.swap(0,1);
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"列表中查找某一字符串是否存在----dd5---:";
qDebug()<<"是否包含dd5,结果"<<list2.contains("dd5");
qDebug()<<"统计dd5的个数,结果"<<list2.count("dd5");
list2.append("dd6");
list2.append("dd5");
foreach(QString temp,list2)
{
qDebug()<<"开始显示:"<<temp;
}
qDebug()<<"从索引0开始查找第一个dd5的位置,结果"<<list2.indexOf("dd5",0);
qDebug()<<"从索引5开始查找第二个dd5的位置,结果"<<list2.indexOf("dd5",5);
return a.exec();
}