QMap

目錄

1、增加

2、刪除

3、改

4、查找

5、轉換


1、增加

 QMap<char,int> mapCI;

//插入
mapCI.insert('a',1);
mapCI.insertMulti('b',2);   //一鍵多值
mapCI.insertMulti('b',3);
qDebug() << mapCI;
//將QMap插入到另一個QMap中,同鍵值不會被覆蓋
QMap<char,int> map1;
map1.insert('b',2);
map1.insert('c',4);
mapCI.unite(map1);
qDebug() << mapCI;

2、刪除

mapCI.erase(mapCI.begin()); //刪除第一個鍵值
qDebug() << mapCI;
mapCI.remove('b');  //刪除 b 和他的值
qDebug() << mapCI;
mapCI.insert('c',4);
qDebug() << mapCI.take('c'); //移除鍵c,返回它的值

3、改

mapCI.insert('a',2); //會覆蓋同一個鍵的值,作用等同修改

4、查找

QMap<char,int>::iterator it = mapCI.find('a'); //查找,返回迭代器
qDebug() << it.key() << it.value();
mapCI.insert('b',2);
qDebug() << mapCI.key(2); //返回該值得鍵,只返回一個鍵
qDebug() << mapCI.keys(2); //返回該值得所有的鍵
//返回鍵的鏈表
QList<char> list = mapCI.uniqueKeys();
qDebug() << list;
//返回值得鏈表
QList<int> list1 = mapCI.values();
qDebug() << list1;

//返回大小最接近b鍵的迭代器,從左到右
it = mapCI.lowerBound('b');
qDebug() << it.key() << it.value();
//返回大小最接近b(不包括b)鍵的迭代器,從右到左
it = mapCI.upperBound('b');
qDebug() << it.key() << it.value();
qDebug() << mapCI.contains('b');//如果含有b鍵,返回true
//查找返回迭代器指針或者 end
qDebug() << mapCI.constFind('b').value();

5、轉換

std::map<char,int> map = mapCI.toStdMap();

6、測試代碼

#include <QCoreApplication>
#include <QDebug>
#include <list>
#include <QVector>
#include <QMap>

using namespace std;

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

    QMap<char,int> mapCI;

    //插入
    mapCI.insert('a',1);
    mapCI.insertMulti('b',2);   //一鍵多值
    mapCI.insertMulti('b',3);
    qDebug() << mapCI;
    //將QMap插入到另一個QMap中,同鍵值不會被覆蓋
    QMap<char,int> map1;
    map1.insert('b',2);
    map1.insert('c',4);
    mapCI.unite(map1);
    qDebug() << mapCI;

    //刪除
    mapCI.erase(mapCI.begin()); //刪除第一個鍵值
    qDebug() << mapCI;
    mapCI.remove('b');  //刪除 b 和他的值
    qDebug() << mapCI;
    mapCI.insert('c',4);
    qDebug() << mapCI.take('c'); //移除鍵c,返回它的值

    //改
    mapCI.insert('a',2); //會覆蓋同一個鍵的值,作用等同修改

    //查找
    QMap<char,int>::iterator it = mapCI.find('a');
    qDebug() << it.key() << it.value();
    mapCI.insert('b',2);
    qDebug() << mapCI.key(2); //返回該值得鍵,只返回一個鍵
    qDebug() << mapCI.keys(2); //返回該值得所有的鍵
    //返回鍵的鏈表
    QList<char> list = mapCI.uniqueKeys();
    qDebug() << list;
    //返回值得鏈表
    QList<int> list1 = mapCI.values();
    qDebug() << list1;

    //返回大小最接近b鍵的迭代器,從左到右
    it = mapCI.lowerBound('b');
    qDebug() << it.key() << it.value();
    //返回大小最接近b(不包括b)鍵的迭代器,從右到左
    it = mapCI.upperBound('b');
    qDebug() << it.key() << it.value();
    qDebug() << mapCI.contains('b');//如果含有b鍵,返回true
    //查找返回迭代器指針或者 end
    qDebug() << mapCI.constFind('b').value();

    //轉換
    std::map<char,int> map = mapCI.toStdMap();
    return a.exec();
}

 

發佈了42 篇原創文章 · 獲贊 52 · 訪問量 6580
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章