> 文档中心 > QList(增删改查)示例

QList(增删改查)示例

特点:支持随机访问,其界面也是基于索引的,在中间的任意一端插入或移除项都是非常快速的

注:访问QList中的值时,尽量采用value(int i),因为value查不到此值时会返回一个默认值0,而at(int i)则会引起崩溃,并且at返回的值不可修改,不便于后期对数据的处理

//定义QList变量    QList<QString> list;    /*在列表中添加元素*/    // 方式1 <<    list << "1" << "2" << "3";    list << "4";//会添加到末尾    // 方式2 添加到末尾 不会覆盖原来的    list.append("5");    list.push_back("6");    // 方式3 添加到头部 不会覆盖原来的    list.prepend("0");    list.push_front("00");    // 方式4 在位置4插入元素    list.insert(4, "4");    /*改变位置*/    list.swap(1,3);//交换位置1和位置3的元素    list.move(1,4);//把第一个元素移到第四个元素,其他元素顺移    /*查找元素*/    QString str;    int index = list.indexOf("mm");//return该元素的下标值;若有第二个参数则表示查找第几个这个字符    str = list.back();//返回最后一个元素 同list.last();    str = list.front();//返回第一一个元素 同list.first();    bool isCon = list.contains("23");//列表是否有某元素 成功返回true 否则false    qDebug() << "str=" << str ;    index = list.count();//列表总元素 同list.length();    index = list.count("4");//列表中有几个这样的元素    /*从列表中删除元素*/    str = list.takeAt(2); //删除第3个 并返回结果    list.removeAt(3);    /*修改元素的值*/    list.replace(2,"bc");//参数1 元素下标,参数2 修改的结果值    list[2] = "opopo";    /*遍历访问元素*/    //方式1:    for(int i = 0; i < list.size(); ++i)    { //at()操作比操作符[]更快,因为它不需要深度复制 qDebug() << list[i] << list.at(i) << list.value(i) ;    }    //方式2:    QList<QString>::iterator it;    for(it=list.begin(); it!=list.end();++it)    { if((*it)== "00") {     it = list.erase(it,it+2);//删除从起始位置到结束位置的元素 } qDebug() << "it" << (*it);    }