Qt容器QMap(映射)

插入数据

QMap infoMap; //第一个是key 第二个是value
    infoMap.insert("王祖蓝","163cm");
    infoMap.insert("Anglebaby","168cm");
    infoMap["易烊千玺"] = "173cm(成长中)";
    infoMap["姚明"] = "226cm";

通过Key找value 

    qDebug()<<"姚明:"<

通过value找Key 

qDebug()<<"168cm的是谁呢?"<

Java风格迭代器

只读

 QMapIterator it_r(infoMap);
    for(it_r.toFront();it_r.hasNext();)
    {
        it_r.next();
        qDebug()<

注:输出的结果不是按照插入数据输出而是键序进行排序,它是有顺序的(可以理解为按字母顺便排序),哈希表是无序的!

读写 

  QMutableMapIterator it_rw(infoMap);
    if(it_rw.findNext("163cm"))
        it_rw.setValue("163.1cm");

    qDebug()<

STL风格迭代器 

只读

    QMap wMap;
    wMap.insert("spring","15℃");
    wMap.insert("summer","35℃");
    wMap.insert("autumn","23℃");
    wMap.insert("winter","-5℃");

    //STL风格迭代器 ,只读
    QMap::const_iterator i_r;
    i_r = wMap.constBegin();

    qDebug()<< endl <<"初始化季节遍历:";
    for(;i_r!=wMap.constEnd();++i_r)
        qDebug()<

注:输出的结果不是按照插入数据输出而是键序进行排序,它是有顺序的(可以理解为按字母顺便排序),哈希表是无序的! 

读写 

    QMap::iterator i_rw;
    i_rw = wMap.find("spring");
    if(i_rw!=wMap.end())
        i_rw.value() = "16℃";

    qDebug()<

 Key对应多个value

    QMultiMap 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() <

Java风格只读迭代器

    QMapIterator i_r1(wMap1);

    qDebug()<

注:遍历数据拿值要从下一个开始拿!  

        qDebug()<i_r1.next().value();

        一定要添加上next()

 

 

你可能感兴趣的:(Qt项目学习,qt,数据库,开发语言,c++)