QT: QMap使用

#include <QtCore/QCoreApplication>
#include <QDebug>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QMap<int, int> map;
    map.insert(1, 3);
    map.insert(2, 4);
    map.insert(15, 9);
    map.insert(6, 8);

    QMap<int, int>::const_iterator i;
    for( i=map.constBegin(); i!=map.constEnd(); ++i)
        qDebug() << i.key() <<"        " << i.value();
    //QMap的Key会自动按升序排列


    QMap<int, int>::iterator mi; //注意QMap<int, int>::const_iterator 报错
    mi = map.find(2);
    if(mi != map.end())
    {
        qDebug() << mi.key() <<"        " << mi.value();
        ++mi;
        if(mi != map.end())
        {
            qDebug() << mi.key() <<"        " << mi.value();
        }
    }

    return a.exec();
}

/*
 总结:
 QMap和QHasp的操作基本一致
 需要对QMap的迭代器进行手动向下或向上移动时,一定要用QMap<T1, T2>::iterator
 不能使用QMap<T1, T2>::const_iterator;
 循环时可以使用QMap<T1, T2>::const_iterator和constBegin,constEnd

 */

posted @ 2012-03-23 08:41  treemon  阅读(29648)  评论(0编辑  收藏  举报