QMultiMap使用

 

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可以返回所有的值

使用范例

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

测试结果

23
0
(23, 22)
"b"
"t1"
("t1", "t2")
(25, 22)
("t1", "t2", "t3")

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

Techie亮博客,转载请注明:Coologic » QMultiMap使用

Coologic 博客域名已更改,已从 www.techieliang.com 改为 www.coologic.cn,上述链接地址受到影响,若需查看源文请手动修改,多有不便,敬请谅解。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值