版权声明:若无来源注明,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使用

QMultiMap使用的更多相关文章

  1. 两种QMultiMap的遍历方法(最好使用只读遍历器)

    留个爪,备查 QMultiMap<QString, QString>& remote_map = my_obj->m_MapVersion; // ccc 这里体现了引用的好 ...

  2. 1.QT中的容器QVector,QList,QSet,QMap,QQueue,QStack,QMultiMap,QSingleList等

    1  新建一个项目 在pro文件中只需要加上CONFIG += C++11 main.cpp #include <QMap> int main() { QMap<int,QStrin ...

  3. Qt532.容器QMap&QMultiMap

    PS: QMap 一个Key 只能对应 一个Value (不是绝对的情况...内部都有 一个key对应多个value的机制) PS: QMultiMap 一个Key 可以对应 多个Value PS:  ...

  4. 1.QT该容器QVector,QList,QSet,QMap,QQueue,QStack,QMultiMap,QSingleList等待

    1  新建一个项目 在pro文件里仅仅须要加上CONFIG += C++11 main.cpp #include <QMap> int main() { QMap<int,QStri ...

  5. C++中的容器类详解

    一.STL容器类 STL(Standard Template Library)的六大组件:容器(containers).迭代器(iterators).空间配置器(allocator).配接器(adap ...

  6. QMap与QHash

    关联容器可以保存任意多个具有相同类型的项,且它们由一个键索引.Qt提供两个主要的关联容器类:QMap<K, T>和QHash<K, T>. QMap<K, T>是一 ...

  7. qt 总结

    Qt中的每个类,都有一个对应的同名头文件,其中包含其类定义.例如要使用QApplication类,则需要在程序中添加" #include <QApplication>" ...

  8. (转)STL

    C++容器类 C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等:后者包括set,map,multiset,multimap等. 若需要存储的元素数在 ...

  9. Qt 学习之路:存储容器

    存储容器(containers)有时候也被称为集合(collections),是能够在内存中存储其它特定类型的对象,通常是一些常用的数据结构,一般是通用模板类的形式.C++ 提供了一套完整的解决方案, ...

随机推荐

  1. Python的print的底层实现

    默认调用 sys.stdout.write() 方法 import sys sys.stdout.write("hello") 会在控制台打印:hello

  2. www.pantom.top

    新建小站 https://www.pantom.top

  3. Leecode刷题之旅-C语言/python-263丑数

    /* * @lc app=leetcode.cn id=263 lang=c * * [263] 丑数 * * https://leetcode-cn.com/problems/ugly-number ...

  4. 微信小程序-js为object添加属性

    代码如下: var my_set = result.attributes.my_set; if (my_set == undefined) { my_set = { is_be_agree: e.de ...

  5. (数据科学学习手札48)Scala中的函数式编程

    一.简介 Scala作为一门函数式编程与面向对象完美结合的语言,函数式编程部分也有其独到之处,本文就将针对Scala中关于函数式编程的一些常用基本内容进行介绍: 二.在Scala中定义函数 2.1 定 ...

  6. 【转】ASP.NET 防止同一用户同时登陆

    要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开 ...

  7. 20155230 2016-2017-2《Java程序设计》课程总结

    学号 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业01:我所期望的师生关系 预备作业02:成功经验与C语调查 预备作业03:虚拟机安装及Linu ...

  8. NetWork——TCP的流量控制和拥塞控制

    ,然后开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大. 这里为什么替换掉了慢开始算法呢,这是因为收到重复的ACK不仅仅告诉我们一个分组丢失了,由于接收方只有在收到另一个报文段时才会产生重复的ACK,所 ...

  9. java开发工具使用

    一.MyEclipse软件的使用 1)ctrl+n新建文件 2)ctrl+d删除一行 3)alt+/提示补齐 (main/syso/syse/for遍历最近的数组) 4)ctrl+shift+f格式化 ...

  10. 【MongoDB】如何注册windows服务

    一.为什么要注册windows服务 mongodb启动比较麻烦,每次都要cmd去开启.注册windows服务,可以设置开机启动,比较友好. 二.如何注册windows服务 1.安装mongodb 2. ...