Qt 中的 map 与 stl、boost 中稍有差别,这些差别只能让你更加方便的去操作数据,下面代码演示了对 map 的增、删、改、查具体操作:
代码语言:javascript复制#include <QList>
#include <QString>
#include <QDebug>
#include <QMap>
int main()
{
QMap<QString, int> map;
// 增加数据
map.insert("小明", 4);
map["小王"] = 3;
map.insert("小明", 8); // 会修改原值
qDebug() << map["小明"];
#if 0
// 删除数据
map.remove("小名");
map.clear();
#endif
// 遍历
QList<QString> keyList = map.keys();
for(QList<QString>::iterator it = keyList.begin();
it != keyList.end();
it )
{
qDebug() << *it << "age is :" << map[*it] << "for list";
}
for(QMap<QString, int>::iterator it = map.begin();
it != map.end();
it )
{
qDebug() << it.key() << "age is :" << it.value() << "for iterator";
}
// 访问
qDebug() << map.value("小明");
// 如果key不存在,那么这种方式会自动增加并返回一个默认值 0
int i = map["小汤"];
qDebug() << i;
// 查找
if(map.find("小明") == map.end())
{
qDebug() << "not found..";
}
else
{
qDebug() << "found..";
}
}