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();
}