QMap key()和value(const Key key, const T defaultValue = T()) const第二个参数作用

news2024/11/25 6:32:58

value()函数介绍

返回与键key关联的值。

如果map不包含键为key的项,则该函数返回defaultValue
如果没有指定defaultValue,该函数返回一个默认构造的值。
如果映射中有多个key项,则返回最近插入的项的值。

示例

定义自定义类型:

class c
{
  public:
    explicit c(){}
    int n;
};

调用:

  1. 当获取的Key存在时,不管默认值存在不存在,都会使用key对应的value:
    QMap<int, c*> map;

    c* pC1 = new c();
    pC1->n = 10;

    map.insert(1, pC1);
    
    c* pCTmp = nullptr; //new c();
    // pCTmp->n = 100;
    // 当获取的key存在时
    c* pTmp = map.value(1, pCTmp);
    if(pCTmp)
        qDebug().noquote() << "默认值 :" << pCTmp->n;

    if(pTmp)
        qDebug().noquote() << "key 对应的值 :" << pTmp->n;

在这里插入图片描述

  1. 当获取的key不存在时,默认值存在:
    QMap<int, c*> map;

    c* pC1 = new c();
    pC1->n = 10;

    map.insert(1, pC1);

    c* pCTmp = new c();
    pCTmp->n = 100;
    // 当获取的key不存在时,默认值存在
    c* pTmp = map.value(2, pCTmp);
    if(pCTmp)
        qDebug().noquote() << "默认值 :" << pCTmp->n;

    if(pTmp)
        qDebug().noquote() << "key 对应的值 :" << pTmp->n;

在这里插入图片描述
3. 当获取的key和默认值都不存在时:

	QMap<int, c*> map;

    c* pC1 = new c();
    pC1->n = 10;

    map.insert(1, pC1);

    c* pCTmp = nullptr;
    // 当获取的key不存在时,默认值存在
    c* pTmp = map.value(2, pCTmp);
    if(pCTmp)
        qDebug().noquote() << "默认值 :" << pCTmp->n;
    else
        qDebug().noquote() << "默认值不存在";

    if(pTmp)
        qDebug().noquote() << "key 对应的值 :" << pTmp->n;
    else
        qDebug().noquote() << "key对应值不存在";

在这里插入图片描述

key()函数

这是一个重载函数。

返回第一个值为value的键,如果映射不包含值为value的项,则返回defaultKey。如果没有提供defaultKey,则该函数返回一个默认构造的键。

这个函数可能很慢(线性时间),因为QMap的内部数据结构是为按键而不是按值进行快速查找而优化的。

    QMap<int, c*> map;

    c* pC1 = new c();
    pC1->n = 10;

    map.insert(1, pC1);
    // value存在时
    qDebug().noquote() << "value 存在时 :" << map.key(pC1);

    c* pCTmp1 = nullptr;
    // value不存在,默认key存在时
    qDebug().noquote() << "value不存在,默认key存在时 :" << map.key(pCTmp1, 2);
    // map 的keys
    qDebug().noquote() << "map 的keys :" << map.keys();

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB中fft与fftshift的区别

两者的区别在于&#xff1a; fft函数将时域信号转换为频域信号&#xff0c;即将信号从时间域转换为频率域。fftshift函数用于对fft计算结果进行移位操作&#xff0c;将频域信号的零频率分量移到频谱的中心&#xff0c;方便观察和处理。fftshift函数将fft计 算结果沿着中心点进…

2023年最后一次PMP项目管理认证考试成功举行!

2023年11月25日&#xff0c;PMI项目管理资格认证考试顺利举行&#xff01; 才聚集团作为目前国内规模最大的项目管理专业考试服务机构&#xff0c;此次考试负责深圳、广州、东莞、珠海、南宁、保定6个城市的现场考务工作&#xff0c;各考点的布置&#xff0c;入场&#xff0c;…

门店预约系统会员小程序作用如何

除了线上卖货外&#xff0c;很多行业或商家的产品/服务需要进店&#xff0c;因此一款完善的门店预约系统是众商家需要的。 通过【雨科】平台搭建门店预约小程序&#xff0c;通过预约功能&#xff0c;客户可以查看服务并选择规格、时间等填写信息预约&#xff0c;客户与商家同时…

CMake语法解读 | Qt6需要用到

CMake 入门CMakeLists.txtmain.cpp编译示例cmake常用参数入门 Hello CMake CMake 是一个用于配置跨平台源代码项目应该如何配置的工具建立在给定的平台上。 ├── CMakeLists.txt # 希望运行的 CMake命令 ├── main.cpp # 带有main 的源文件 ├── include # 头文件目录 …

【C++】多态(上) 多态 | 虚函数 | 重写 | final、override | 接口继承与实现继承 | 抽象类

一、多态 概念 多态&#xff0c;就是多种状态&#xff0c;即不同的对象去完成同一个行为时会产生出不同的状态。比如&#xff1a;买票时&#xff0c;成人要原价买&#xff0c;学生和老人就可以享受优惠价便宜一点儿。同样是买票这个行为&#xff0c;不同的对象来做就有不同的…

招募引流模式是实体门店吸引顾客的一种有效策略

在如今激烈的市场竞争和庞大的客户需求中&#xff0c;应该采取什么样的方式来应对&#xff0c;才能找到自己的一席之地。招募引流模式是实体门店吸引顾客的一种有效策略&#xff0c;通常招募体验官或合作伙伴&#xff0c;让他们协助门店进行推广活动&#xff0c;达到增加客流量…

Go——三、运算符以及流程控制

Go 一、Go语言运算符1、算数运算符2、关系运算符3、逻辑运算符4、位运算符5、赋值运算符6、其他运算符7、运算符优先级 二、Go的流程控制1、if else2、for 循环结构3、for range&#xff08;键值循环&#xff09;4、switch case5、break&#xff1a;跳出循环6、go&#xff1a;跳…

AIGC系列之:DDPM原理解读(简单易懂版)

目录 DDPM基本原理 DDPM中的Unet模块 Unet模块介绍 Unet流程示意图 DownBlock和UpBlock MiddleBlock 文生图模型的一般公式 总结 本文部分内容参考文章&#xff1a;https://juejin.cn/post/7251391372394053691&#xff0c;https://zhuanlan.zhihu.com/p/563661713&…

Selenium 连接到现有的 Firefox 示例

当前环境&#xff1a; python 3.7 selenium 3.14.1 urllib3 1.26.8 Frefox 115.1.0esr(32位) geckodriver.exe 0.33.0 1 下载 Firefox 浏览器&#xff0c;根据自己的需要选择。 下载 Firefox 浏览器&#xff0c;这里有简体中文及其他 90 多种语言版本…

为什么对中小企业来说,数字化转型很难?

通过整合尖端数字技术和创造性流程&#xff0c;实现公司运营和客户参与的现代化&#xff0c;被称为“数字化转型”。在当今瞬息万变的商业环境中&#xff0c;数字化转型已成为中小型企业寻求生存和可持续增长的关键要求。拥抱数字化转型对于企业的长期成功和可持续发展至关重要…

世微AP5125 DC-DC降压恒流 LED车灯电源驱动IC SOT23-6

产品描述 AP5125 是一款外围电路简单的 Buck 型平均电流检测模式的 LED 恒流驱动器&#xff0c;适用于 8-100V 电压范围的非隔离式大功率恒流 LED 驱动领域。芯片采用固定频率 140kHz 的 PWM 工作模式&#xff0c; 利用平均电流检测模式&#xff0c;因此具有优异的负载调整 率…

Day49:647. 回文子串、516.最长回文子序列

文章目录 647. 回文子串思路代码实现 516.最长回文子序列思路代码实现 647. 回文子串 题目链接 思路 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 布尔类型的dp[i][j]&#xff1a;表示区间范围[i,j] &#xff08;注意是左闭右闭&#xff09;的子串是否是回文…

个微协议/ipad协议/协议/8.0.37协议

微信开发API接口WX/ipad/8.0.37协议&#xff0c;api可实现众多功能&#xff1b; 扫码登录、可对PYQ进行发布、查看、互动点赞、评论&#xff1b; 好友列表、微信消息收发、发文本消息、图片消息、名片消息、动图表情、发文件、删好友&#xff1b; 添加好友、微信转账接收、微…

【Spark入门】基础入门

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍Spark的定义、发展、扩展阅读&#xff1a;Spark VS Hadoop、四大特点、框架模块、运行模式、架构角色。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff…

关于fine-tune “微调”

大模型的 Fine-tune 我们对技术的理解&#xff0c;要比技术本身更加重要。 正如我在《大模型时代的应用创新范式》一文中所说&#xff0c;大模型会成为AI时代的一项基础设施。 作为像水、电一样的基础设施&#xff0c;预训练大模型这样的艰巨任务&#xff0c;只会有少数技术…

美SEC与贝莱德,对比特币现货ETF申购方式产生分歧!

比特币现货ETF的通过时间是市场投资者密切关注的议题。虽然SEC最近推迟了Hashdex、富兰克林邓普顿&#xff08;Franklin Templeton&#xff09;和GlobalX申请的决议时间&#xff0c;但彭博ETF分析师James Seyffart对明年一月通过的机率持乐观态度&#xff0c;认为其通过的机会能…

Jmeter参数化之数据库读取数据

以读取mysql数据库为例 1.下载一个mysql驱动包&#xff0c;最好去mysql官网下载 下载网址&#xff1a;https://dev.mysql.com/downloads/connector/j/ elect Operating Systems&#xff1a;选择Platform independent 然后选择zip包&#xff0c;点击Download。 下载如下&…

【24届校招】c++选手还有机会吗?如何选择更好的出路?

一、今年为什么c选手就业形势如此艰难&#xff1f; 去年c岗位的火热&#xff0c;不少c选手拿到高薪offer&#xff0c;今年转c的人群变多&#xff0c;内卷加剧&#xff0c;高学历大佬多如牛毛&#xff0c;很多比较好的c岗位多人投递&#xff0c;僧多肉少。 从行情来说&#xf…

python循环语句和函数

1.使用for循环打印9*9乘法表 for i in range(1, 10):for j in range(1, i1):print(i, "*", j, "", i*j, end"\t")print()结果&#xff1a; 2.使用while循环打印9*9乘法表 i 1 while i < 10:j 1while j < i1:print(i, "*", j…

量子计算软件平台

目录 1.量子语言 2.量子软件开发工具 3.量子云计算平台 1.量子语言 量子语言是一种基于量子计算机的语言&#xff0c;用于描述和实现量子算法。与经典计算机语言不同&#xff0c;量子语言需要考虑量子力学的特殊规则和算法的量子化。其中&#xff0c;最常用的量子语言是量子程…