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