zoukankan      html  css  js  c++  java
  • QMultiMap使用

    博客地址已更改,文章数量较多不便批量修改,若想访问源文请到 coologic博客 查阅,网址:www.coologic.cn

    如本文记录地址为 techieliang.com/A/B/C/ 请改为 www.coologic.cn/A/B/C/ 即可查阅

    版权声明:若无来源注明,Techie亮博客文章均为原创。 转载请以链接形式标明本文标题和地址:
    本文标题:QMultiMap使用     本文地址:http://techieliang.com/2017/12/539/

    1. QMultiMap与QMap

    操作可以说完全一样,只不过QMultiMap继承自QMap,并实现了一个key 对应多个value(通过插入多个相同key的值)。

    由于一个key对应了多个值,所以QMultiMap取消了对”[]”的定义

    Unlike QMap, QMultiMap provides no operator[]. Use value() or replace() if you want to access the most recently inserted item with a certain key. If you want to retrieve all the values for a single key, you can use values(const Key &key), which returns a QList<T>: QList<int> values = map.values(“plenty”); for (int i = 0; i < values.size(); ++i) cout << values.at(i) << endl;

    同时value会返回最后一次插入的值,而values可以返回所有的值

    2. 使用范例

    1. QMultiMap<QString,int> m_map;
    2. //m_map["a"] = 10;//这几个会出错
    3. //m_map["a"] = 11;
    4. //m_map["as"] = 13;
    5. m_map.insert("b",22);//同key不同value
    6. m_map.insert("b",23);
    7. m_map.insert("ba",55);
    8. m_map.insert("ba",56);
    9. m_map.insert("t1",77);//同value不同key
    10. m_map.insert("t2",77);
    11. auto find_index = m_map.find("as");
    12. if(find_index!=m_map.end()) {
    13. qDebug()<<find_index.key()<<find_index.value();
    14. }
    15. qDebug()<<m_map.value("b");
    16. qDebug()<<m_map.value("aa");
    17. qDebug()<<m_map.values("b");//测试同key不同value
    18. qDebug()<<m_map.key(22);
    19. qDebug()<<m_map.key(77);
    20. qDebug()<<m_map.keys(77);//测试同value不同key
    21. //修改必须用replace
    22. m_map.replace("b",25);//讲第一个key=b的修改为了25
    23. m_map.replace("t3",77);//由于没有t3=77所以新增加了一个
    24. qDebug()<<m_map.values("b");
    25. qDebug()<<m_map.keys(77);

    测试结果

    1. 23
    2. 0
    3. (23, 22)
    4. "b"
    5. "t1"
    6. ("t1", "t2")
    7. (25, 22)
    8. ("t1", "t2", "t3")

    上述范例可以对比本博客QMap使用

    转载请以链接形式标明本文标题和地址:Techie亮博客 » QMultiMap使用
  • 相关阅读:
    初学版本控制更新Version control
    关于函数式编程(Functional Programming)
    Annotation
    Container 、Injection
    Build Tools
    Version Control
    URL和URI的区别
    函数式编程语言
    HTTP协议的简单解析
    Windows10安装MySQL8.0
  • 原文地址:https://www.cnblogs.com/techiel/p/7989912.html
Copyright © 2011-2022 走看看