插入数据
QMap<QString,QString> infoMap; //第一个是key 第二个是value
infoMap.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();文章来源:https://www.toymoban.com/news/detail-820563.html
一定要添加上next()文章来源地址https://www.toymoban.com/news/detail-820563.html
到了这里,关于Qt容器QMap(映射)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!