QT支持两种类型的迭代器
只读迭代器比读写迭代器操作速度快很多
概念:是一个提供列表的模板类
//函数:
insert(); //指定索引处插入值
replace(); //指定索引处替换值
append(); //尾追
prepend(); //头追
at(): //得到索引索引的值
count(); //返回某元素的个数
contains();//判断是否包含某元素。返回值:布尔值
swap(); //交换两个索引对应的值,参数:1.索引1 2.索引2
indexOf(); //得到参数1对应元素的索引,参数2:从哪里开始查找(可缺省)
removeAt(); //移除索引处值
removeFirst();//移除第一个元素
removeLat(); //移除最后一个元素
removeAll(); //移除参数中对应的元素(删除全部)
remove(); //移动元素。参数:1.起始索引 2.目标索引处
//将元素从起始索引移到目标索引处,其它元素跟着相应变化(向前或前后)
takeAt(); //移除索引对应的元素并得到这个元素
takeFirst();
takeLast();
可以通过<<添加元素
QList list;
list<<1<<2<<3<<4<<5;
使用for、foreach、迭代器
QList list;
QList::const_iterator ite; //定义一个只读迭代器
list<<1<<2<<3<<4<<5;
for(ite=list.begin();ite!=list.end();++ite)
{
qDebug()<<(*ite);
}
foreach (int item, list)
{
qDebug()<
概念:是一个提供链接列表的模板类
概念:是一个提供动态数组的模板类
概念:提供了一个基于跳跃列表的字典
//函数:
insert(); //插入元素(推荐使用)。参数:1.key 2.value
value(); //通过Key值v获得value,不存在返回0
take(); //删除一个key,并获得这个key对应的值
clear(); //清除所有元素
contains(); //判断对应的key值是否存在,返回:布尔值
使用[]去取一个key对应的值时,如果这个key不存在,则返回0、NULL...等(依据类型而定),并添加这个key值
QMap map;
map["one"] = 1;
int value1 = map["two"];
qDebug()<< value1; //返回0,two已经添加进map中
通过迭代器、foreach
QMap map;
QMap::const_iterator ite;
map.insert("one",1);
map.insert("two",2);
for(ite=map.constBegin();ite!=map.constEnd();++ite)
{
qDebug()<
概念:一个模板类,它提供基于哈希表的字典
QMap与QHash的差别:
排序,默认为升序,第二个参数:qGreater
QList list;
list << 36 << 16 << 66 << 6 << 56;
qSort(list.begin(), list.end()); //升序
qSort(list.begin(), list.end(),qGreater()); //逆序
拷贝,要注意有足够的空间存储拷贝内容
QStringList list;
list << "a" << "b" << "c";
QVector vect(5);
qCopy(list.begin(), list.end(), vect.begin()+1);
foreach (QString item, vect)
{
qDebug() << item;
}
//vect:["","a","b","c",""]
QList查找,qFinf
QList List;
List << 1 << 5 << 15 << 25;
QList::const_iterator Iter = qFind(List.begin(), List.end(), 25);
if(Iter != List.end())
{
qDebug() << "Find: " << *Iter;
}
else
{
qDebug() << "Not Find";
}
QMap查找,find只能找到其key值,而不是value值
QMap map;
map.insert(1,"a");
map.insert(2,"b");
QMap::const_iterator Iter=map.find(1);
while(Iter!=map.end()&&Iter.key()==1)
{
qDebug()<