QMap
QMap<Key,T>提供一个从类型为Key的键到类型为T的值的映射。形式为一个键对应一个值。按照键Key的次序存储数据。为了能够支持一键多值,QMap提供QMap<Key,T>::insertMulti()和QMap<Key,T>::values()的函数。
//QMap类 //1:创建Map实例,第一个参数为QString类型的键值,第二个参数为int类型的值 QMap<QString,int> qmap; //插入信息 qmap["Chinese"]=120; qmap["Math"]=108; qmap.insert("English",20); qDebug() << qmap; //删除数据 qmap.remove("English"); qDebug() << qmap; //遍历QMap类实例 // 1:迭代器 QMapIterator<QString,int> itr(qmap); while (itr.hasNext()) { itr.next(); qDebug() << itr.key() << ":" << itr.value(); } // 2:STL类型的迭代 QMap<QString,int>::const_iterator stritr=qmap.constBegin(); while (stritr != qmap.constEnd()) { qDebug() << stritr.key() << ":" << stritr.value(); stritr++; } //根据key查找value qDebug() << qmap.value("Math"); //根据value查找key qDebug() << qmap.key(108); //修改键值 // 一个键对应一个值,再次调用insert()将覆盖之前的值 qmap.insert("Math",120); qDebug() << qmap.value("Math"); //查询是否包含某个键 qDebug() << qmap.contains("Math"); //输出所有QMap实例化 QList<QString> aKeys=qmap.keys(); qDebug() << aKeys; QList<int> aValues=qmap.values(); qDebug() << aValues; //一个键对应多个值 QMultiMap类来实例化QMap对象 QMultiMap<QString,QString> mulmap; mulmap.insert("student","no"); mulmap.insert("student","name"); mulmap.insert("student","sex"); mulmap.insert("student","age"); qDebug() << mulmap;
QHash类
QHash<Key,T>具有QMap几乎完全相同的API,QHash维护着一张哈希表,哈希表的大小与QHash的数据项的数目相适应。
QHash以任意的顺序组织它的数据,当存储书的顺序无关紧要时,建议使用QHash作为存放数据的容器。
QHash<QString ,int> qh; qh["key 1"]=1; qh["key 2"]=2; qh["key 3"]=3; qh["key 4"]=4; qh.insert("key 5",5); QList<QString> list=qh.keys(); qDebug() << list; QHash<QString,int>::const_iterator itr; for(itr=qh.begin();itr !=qh.end();itr ++){ qDebug() << itr.key(); }
QMap和QHash的区别
- 功能差不多,但QHash查找速度快
- QMap是按照键的顺序存储数据的,QHash是任意顺序
- QMap的键必须提供“<”运算符,而QHash的键必须提供“==”运算符和一个名为qHash()的全局三列函数。
QVector类
QVector<T>在相邻的内存当中存储给定数据类型T的一组数值。在前部或者中间位置进行操作的速度是很慢的,因为这样的操作将导致内存中的大量数据被移动。
QVector<int> qvr; qvr<<10; qvr << 20; qvr.append(30); qvr.append(40); qDebug() << qvr; for(int i=0;i<qvr.count();i++){ qDebug() << qvr[i]; } //删除 // qvr.remove(1); //qDebug() << qvr; //范围删除 qvr.remove(1,2); qDebug() << qvr;
标签:QHash,qmap,QVector,qDebug,qh,itr,QMap From: https://www.cnblogs.com/baisedeyu/p/17848975.html