Qt 中数据结构 map 使用

Qt 中的 map 与 stl、boost 中稍有差别,这些差别只能让你更加方便的去操作数据,下面代码演示了对 map 的增、删、改、查具体操作:

#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..";
    }
}

 

说说你的想法