首页 > 学院 > 开发设计 > 正文

Qt容器类-QList、QMultiMap

2019-11-06 08:39:15
字体:
来源:转载
供稿:网友

1.简介

QList类可能是Qt中最常用的容器类了,经QList类衍生了许多子类,如QStringlist等,QList类已经被高度优化;QMultiMap与QMap类其实很类似,唯一区别在于QMap类是一键一值,而QMultiMap则是一键多值,掌握了前者,后者学习起来就很简单了;

2.代码片段

QList<QString> list; list<<"1"<<"2"<<"3"; list.append("hello"); //也可以用PRepend list.append("rool"); list.insert(0,"world"); //可以改变list中的位置 list.removeAt(i);//删除#if 0 //遍历方式一:可以直接当做数组遍历 for(int i=0;i<list.size();i++) // qDebug()<<list[i]; qDebug()<<list.at(i);#endif//遍历方式二:java风格迭代器遍历,这里只涉及只读迭代器,还有一种读写迭代器QMutableListIterator QListIterator<QString> i(list); for(;i.hasNext();) qDebug()<<i.next(); //迭代器一般位于第一个表项之前,next函数使迭代器跳过表项并返回其所跳过表项的内容 QMultiMap<QString,QString> map; //可以自定义键值对的数据类型,这里都是字符串 map.insert("beijing","hello"); // 插入,貌似没有append什么的 map.insert("beijing","world"); //一键多值 map.insert("beijing","happy"); map.insert("april","nice"); map.insert("april","ok"); map.insert("london","hhh"); map.remove("beijing");//删除#if 0 遍历方式,本来以为迭代器是以key值为表项分开的,后来才发现是以value分割的 QMapIterator<QString,QString> j(map); QList<QString> rList; for(;j.hasNext();) { // rList.clear(); qDebug()<<"key:"<<j.key()<<"value:"<<j.next().value(); }#endif//查询 QList<QString> rList; rList.clear(); rList=map.values("beijing"); //因为是一键多值,所以返回的是个list,注意这里的参数是key,而不是value for(int i=0;i<rList.size();i++) qDebug()<<rList.at(i);
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表