插入数据
QMap<QString,QString> infoMap; //第一个是key 第二个是valueinfoMap.insert("王祖蓝","163cm");infoMap.insert("Anglebaby","168cm");infoMap["易烊千玺"] = "173cm(成长中)";infoMap["姚明"] = "226cm";
通过Key找value
qDebug()<<"姚明:"<<infoMap["姚明"];qDebug()<<"易烊千玺:"<<infoMap.value("易烊千玺");
通过value找Key
qDebug()<<"168cm的是谁呢?"<<infoMap.key("168cm")<<endl;
Java风格迭代器
只读
QMapIterator<QString,QString> it_r(infoMap);for(it_r.toFront();it_r.hasNext();){it_r.next();qDebug()<<it_r.key()<<" : "<<it_r.value();}
注:输出的结果不是按照插入数据输出而是键序进行排序,它是有顺序的(可以理解为按字母顺便排序),哈希表是无序的!
读写
QMutableMapIterator<QString,QString> it_rw(infoMap);if(it_rw.findNext("163cm"))it_rw.setValue("163.1cm");qDebug()<<endl<<"修改后的数据遍历:";for(it_rw.toFront();it_rw.hasNext();){it_rw.next();qDebug()<<it_rw.key()<<":"<<it_rw.value();}
STL风格迭代器
只读
QMap<QString,QString> wMap;wMap.insert("spring","15℃");wMap.insert("summer","35℃");wMap.insert("autumn","23℃");wMap.insert("winter","-5℃");//STL风格迭代器 ,只读QMap<QString,QString>::const_iterator i_r;i_r = wMap.constBegin();qDebug()<< endl <<"初始化季节遍历:";for(;i_r!=wMap.constEnd();++i_r)qDebug()<<i_r.key()<<" : "<<i_r.value();
注:输出的结果不是按照插入数据输出而是键序进行排序,它是有顺序的(可以理解为按字母顺便排序),哈希表是无序的!
读写
QMap<QString,QString>::iterator i_rw;i_rw = wMap.find("spring");if(i_rw!=wMap.end())i_rw.value() = "16℃";qDebug()<<endl<<"修改春天的数据后遍历:";i_rw = wMap.begin();for(;i_rw!=wMap.end();++i_rw)qDebug()<<*i_rw;
Key对应多个value
QMultiMap<QString,QString> wMap1;wMap1.insert("spring","15℃");wMap1.insert("summer","35℃");wMap1.insert("summer","39℃");wMap1.insert("summer","40℃");wMap1.insert("autumn","23℃");wMap1.insert("winter","-5℃");wMap1.insert("winter","-15℃");wMap1.insert("winter","-55℃");qDebug() <<endl <<"初始化wMap: "<<wMap1;wMap1.remove("winter","-55℃");qDebug()<<endl<<"删除winter:-55℃后"<<wMap1;qDebug()<<endl<<"winter:"<<wMap1.values("winter");
Java风格只读迭代器
QMapIterator<QString,QString> i_r1(wMap1);qDebug()<<endl<<"初始化季节遍历:";for(i_r1.toFront();i_r1.hasNext();)qDebug()<<i_r1.key()<<" : "<<i_r1.next().value();
注:遍历数据拿值要从下一个开始拿!
qDebug()<<i_r1.key()<<" : "<<i_r1.next().value();
一定要添加上next()