1——创建,里面的数据类型随意都行
QMap<QString,QByteArray> m_qMap;
2——插入赋值,QMap只允许每个键有一个值。如果使用QMap中已存在的键调用Insert(),则先前的值将被擦除。
//方式一
m_qMap["one"] = "1";
m_qMap["three"] = "2";
m_qMap["seven"] = "3";
//方式二
m_qMap.insert("twelve", 12);
3——取值,如果指定的键不在映射中,会返回默认值,比如QString-int的则返回0,QString-QByteArray的则返回空值“”。
//方式1
QByteArray num1 = m_qMap["thirteen"];//num1 = 3;
//方式2
QByteArray num2 = m_qMap.value("one");//num2 = 1;
4——检查映射是否包含某个键
if(m_qMap.contains("one"))
{
return true;
}
if(m_qMap.contains("qwe")
{
return false;
}
5——遍历
//方法一:
QMap<QString, QByteArray>::const_iterator it = m_qMap.constBegin();
while (it != m_qMap.constEnd())
{
cout << it.key() << ": " << it.value() << endl;
++it;
}
方法二:2022/7/19发现了个遍历的好方法,一直觉得用迭代器太烦了,反正我不是很喜欢
QList<QString> keyList = resMap.keys();//存放的就是QMap的key值
for(int i=0;i<keyList.size();i++)
{
//这里知道了key不管是删除还是查找还是啥啥啥都很方便
}
6——删除,成功返回1,但如果键不在映射中,则返回0
//方式1
int i = m_qMap.remove("one");//i=1;
int b = m_qMap.remove("trg");//b=0;
//方式2
it=m_qMap.find("one");
m_qMap.erase(it);//it是迭代器