特点:支持随机访问,其界面也是基于索引的,在中间的任意一端插入或移除项都是非常快速的
注:访问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.removeOne(1);//删除列表里遇到的第一个该值
//示例:
QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeOne("sun");
// list: ["cloud", ,"sun", "rain"]
/***********修改元素的值***********/
list.replace(2,"bc");//参数1 元素下标,参数2 修改的结果值
list[2] = "opopo";
/***********判断是否包含某个值***********/
if(list.contains("value"))
{
return true;
}
/***********遍历访问元素***********/
//方式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);
}