map和QMap的简单使用方法

QMap创建和插入数据

   QMap<int ,string> qmapstudent;
    qmapstudent.insert(1,"A");
    qmapstudent.insert(1,"B");//成功,如果已经有一个带有键的项目,则该项目的值将替换为值。
    qmapstudent[2]="C";
    qmapstudent[2]="D";//成功,覆盖以前该关键字对应的值
    qmapstudent[3]="E";

两种遍历方法

QMap<int ,string>::iterator iter;
    for(iter=qmapstudent.begin();iter!=qmapstudent.end();iter++)//法1
    {
        cout<<iter.key()<<' '<<iter.value()<<endl;
    }

    QMapIterator<int ,string> iter2(qmapstudent);//法2
    while(iter2.hasNext())
    {
        iter2.next();  //要放在前面哦

        cout<<iter2.key()<<' '<<iter2.value()<<endl;

    }

输出:
1 B
2 D
3 E

遍历删除
Removes the (key, value) pair pointed to by the iterator pos from the map, and returns an iterator to the next item in the map.
从映射中移除迭代器 pos 指向的 (key, value) 对,并将迭代器返回到映射中的下一项。

QMap<int ,string>::iterator iter3;
    for(iter3=qmapstudent.begin();iter3!=qmapstudent.end();iter3++)
    {
        if(iter3.key()==2)
        {
            iter3=qmapstudent.erase(iter3);//重点
        }
        cout<<iter3.key()<<' '<<iter3.value()<<endl;
    }

C++ map 3种插入数据的方法

 map<int ,string> mapstudent2;
    mapstudent2.insert(pair<int, string>(1,"A"));//法1
    mapstudent2.insert(map<int, string>::value_type(1,"B"));//插入失败,因为map中有这个关键字时,insert操作是插入数据不了的
    mapstudent2.insert(map<int, string>::value_type(2,"C"));//法2
    mapstudent2[3] = "D";//法3
    mapstudent2[3] = "E";//成功,因为数组方式可以覆盖以前该关键字对应的值
    map<int ,string>::iterator it;
    for(it=mapstudent2.begin();it!=mapstudent2.end();it++)//遍历
    {
        cout<<it->first<<' '<<it->second<<endl;
    }

输出:
1 A
2 C
3 E

你可能感兴趣的:(qt,c++)